# Implementation plan

Status: `approved_for_local_implementation`

## Orchestrator model override policy

- Required model tier: strongest available Codex/OpenAI model.
- Current target: `gpt-5.5` high reasoning or highest configured successor/top model.
- Router role: safety/audit/blocker signal only.
- Router bypass/downroute override note: this session's router notice was `gpt-5.4-mini / medium (normal_coding)`. For local implementation, browser QA and post-QA critique, this lower route must be recorded as intentionally bypassed and the strongest available Codex/OpenAI route used.

## Outcome

Create a representative Pop Media website that explains the ecosystem behind Radio Belgia: radio, podcasts, interviews, events, publicitate/sponsors, community proof and partner/grant readiness.

The site is a Pop Media brand/portfolio/commercial hub, not a replacement for radiobelgia.be and not an info.belgia commercial relaunch.

## In scope

- Static-first public-facing site.
- Romanian V1 copy.
- Clear calls to action:
  - listen to Radio Belgia;
  - contact Pop Media for sponsors/advertising/partnerships.
- Sections:
  - hero / mission;
  - ecosystem;
  - proof / activity;
  - sponsor and advertising offers;
  - partner/grant readiness;
  - contact.
- One signature scroll-film visual scene using a broadcast signal/waveform metaphor.
- Local structured content file for copy, links and source labels.
- Responsive desktop/mobile UI.
- Reduced-motion fallback.

## Not now

- Payments, checkout, accounts or admin dashboard.
- Newsletter capture or email sending.
- Database, CMS or real CRM.
- Public DNS, public launch or provider project creation.
- Social scraping, private social access or automated social posting.
- Unconfirmed audience/revenue/attendance counters.
- Public use of business photos/logos/social screenshots before media approval.
- Full multilingual production copy unless Marius approves it.

## Architecture decision

- Recommended stack after approval: Next.js + TypeScript + Tailwind, static-first.
- Runtime: local development first; optional managed preview later with separate approval.
- Content: local typed data files for sections, links, offers and proof items.
- Data: no database for V1.
- Contact: static mailto/WhatsApp/phone links after exact details are confirmed.
- iMac: not needed for initial local implementation; useful later for visual screenshots or public social/media review if Marius approves.
- Proxmox: not justified for V1.

## Data/security/privacy decision

- Use only public/approved media and source-labeled proof.
- Avoid private personal data and social member details.
- No cookies or analytics in V1.
- No contact form, so no personal data storage.
- Public launch requires a separate check for:
  - legal operator wording;
  - sponsor/package pricing currency;
  - logo/photo/video permission;
  - accessibility and privacy copy.

## Company / client research

- Company profile: `research/company-profile.md`.
- Source log: `research/source-log.md`.
- Media source log: `research/media-source-log.md` remains for later image/photo approval tracking.
- Design source map: `research/design-source-map.md`.
- Design intelligence / effects recipe: `research/design-intelligence.md`.

## Visual experience / effects decision

- Domain object/material/process: broadcast waveform / signal line.
- Design dials:
  - `DESIGN_VARIANCE`: 7
  - `MOTION_INTENSITY`: 6
  - `VISUAL_DENSITY`: 6
- Effect palette:
  - hero metaphor: signal line moving through Pop Media chapters;
  - typography: short line reveals;
  - cards: proof/service cards appear as signal stops;
  - navigation: compact sticky nav with live/contact actions and active chapter indicator;
  - media: masked real images/public proof cards for private demo, approval before public launch.
- Avoid:
  - generic dark/purple SaaS look;
  - beige premium restaurant style;
  - hidden player/contact CTA;
  - heavy 3D;
  - unverified metric counters.

## Visual concept gate

Concrete gate file: `plan/visual-concept-gate.md`.

- Gate status: `accepted`.
- Reason: Marius approved local implementation and accepted the waveform / radio signal concept in chat on 2026-05-26.
- Implementation may start for local files only; public launch, provider work and public media use remain separate gates.

## Scroll-film implementation contract

- Long sticky/pinned hero or story stage: yes, one main scene.
- Native scroll progress variable/state: yes.
- Domain object as moving frame/mask/anchor: waveform/signal line.
- Chapter markers: live, stories, events, sponsors, partners.
- Scroll-tied image transforms: opacity/translate/mask for media proof thumbnails.
- Scroll-tied text transforms: line reveal and chapter switching.
- Menu/navigation participation: active chapter signal and persistent CTA.
- Cards/gallery/CTA/contact/footer participation: lighter signal motif and staggered proof cards.
- `prefers-reduced-motion` fallback: required.
- QA checkpoints: 0%, 25%, 50%, 75%, 100% on desktop and mobile.

## Documentation plan

- Keep source log updated.
- Keep media source log before using images publicly.
- Add a short README after implementation with local run, QA and launch gates.

## Testing plan

- Small:
  - typecheck;
  - lint/format;
  - build.
- Medium:
  - responsive component checks;
  - verify links and source-labeled proof data.
- Large:
  - browser screenshot QA at desktop/mobile;
  - scroll checkpoint QA at 0%, 25%, 50%, 75%, 100%;
  - reduced-motion QA;
  - no overlap, no horizontal overflow, readable CTAs.

## Autonomous task queue

Implementation is approved for local files only. Public launch, provider work and public media use remain blocked.

After approval:

1. `PMS-001` scaffold static-first frontend.
   - Scope: project setup, styling baseline, data model.
   - Validation: install/build/typecheck.
2. `PMS-002` implement content/data and base page sections.
   - Scope: hero, ecosystem, proof, offers, partner-readiness, contact.
   - Validation: build and link checks.
3. `PMS-003` implement scroll-film hero and reduced-motion fallback.
   - Scope: waveform scene, chapter state, motion fallback.
   - Validation: browser scroll checkpoint QA.
4. `PMS-004` responsive polish and media/source approval placeholders.
   - Scope: desktop/mobile polish, proof cards, source labels.
   - Validation: screenshot QA.
5. `PMS-005` docs and handoff.
   - Scope: README, launch gates, remaining confirmations.
   - Validation: final build plus manual review.

## Marius confirmation

Marius approved on 2026-05-26:

- this implementation plan;
- the visual concept gate;
- local implementation scope only.

Approval command after confirmation:

```bash
/Users/mariusfit/.codex/hooks/new-project-research-orchestrator.sh approve --project-dir docs/project-intake/pop-media-site-20260526T184946Z --scope localImplementation
```
