# SIMO NXE Portfolio — Project State

## Stable version

**v346 — Mobile Field Guide & Runtime Stabilization**

This checkpoint preserves the v339 media pipeline, v341 Smart WebP assets, v342 card interaction behavior, v343 Digital Footprint navigation and the v344–v345 mobile foundation. It fixes Field Guide entry position, centers mobile quest actions, corrects VistaPort icon composition, removes Digital Realms map flicker and reduces sustained mobile CPU/GPU work. Desktop presentation and desktop interaction remain unchanged.


## v346 mobile runtime controls

- Field Guide page scroll state is reset on every open and scroll anchoring is disabled for the mobile scene.
- Page-specific document listeners and effect timers are explicitly removed when a Field Guide page is replaced or closed.
- The Field Guide home layer is hidden rather than blurred while a page is open on mobile.
- Digital Realms does not prewarm its large DOM on mobile or in data-saving mode.
- Mobile map gestures write transforms at most once per animation frame and skip hidden desktop hit-zone calculations.
- Infinite map backdrop, island float, star pulse and SVG blur effects are disabled only on mobile; the map retains its touch drag and pinch behavior.
- Gamepad polling on mobile starts only when a gamepad is connected and pauses while the document is hidden.
- Core Breaker is capped near 30 FPS on mobile and no longer rewrites its HUD every frame.

## Architecture

The project remains a static single-page application:

- `index.html` loads global styles, Digital Footprint styles, the media manager, canonical Digital Footprint data, Digital Footprint behavior and global application behavior.
- `script.js` owns the dashboard, Profile modal, Digital Realms, Field Guide and global input behavior.
- `digital-footprint-data.js` is the source of truth for Digital Footprint categories and NXE Browser sites.
- `digital-footprint-media.js` maps canonical originals to thumbnail, preview and browser-tile derivatives and owns hydration/preloading.
- `digital-footprint.js` owns selector/deck state, the Asset Viewer, Photography field and NXE Browser behavior.
- `digital-footprint.css` contains the authoritative Digital Footprint, Asset Viewer and NXE Browser presentation.

## Digital Footprint categories

- My Footprint
- Logos
- Books
- Prints
- Photography
- Web + UI
- Socials / Assets

Posters remains represented inside Prints rather than as a standalone category.

## Media strategy

### Standard decks

- Cards render with a transparent placeholder instead of immediately requesting their production original.
- The active card receives a high-priority optimized preview.
- The immediate previous and next cards receive normal-priority previews.
- Hydrated sources remain in place and reuse normal browser caching when revisited.
- In data-saving mode only the active card is hydrated.

### Photography

- The draggable field uses thumbnail WebP derivatives for all visible photos.
- Click/A/Enter opens the selected photo in the Asset Viewer.
- The Viewer uses a preview-first, original-second sequence.

### Universal Asset Viewer

- Opens immediately and keeps its established NXE layout.
- Displays an optimized preview first.
- Loads the production-quality full WebP in the background and swaps it into the same contained stage.
- Retains the preview if the full asset fails.
- Prefetches adjacent full assets only after the current asset completes and only outside data-saving mode.
- Preserves focus trap, focus restoration, previous/next controls and ESC/B close behavior.

### NXE Browser

- Start-page logos use compact browser-tile derivatives.
- Project/site metadata remains canonical in `digital-footprint-data.js`.
- Iframe restrictions and the external-view fallback remain unchanged.

## Performance baseline

The 53 canonical source-backed media records use a thumbnail/preview/full WebP pipeline; the v341 smart conversion keeps alpha-sensitive UI assets lossless and print artwork at higher quality. Generated delivery assets total approximately:

- **1.54 MB** of thumbnails
- **4.85 MB** of card previews
- **0.13 MB** of browser-tile images

Opening Prints no longer requests all eight originals (approximately 23 MB). At its initial archive position it requests only the first optimized preview; nearby previews hydrate as the user navigates. Full originals are requested only after explicit Asset Viewer activation.

## Protected areas

Do not broadly modify the main dashboard, Profile modal, Digital Realms, Field Guide, X Server, Toolbox, Side Quests, Contact, core modal system or global navigation unless explicitly requested.

## Asset conventions

- Preserve production-quality full assets used by the full-screen viewer.
- Generated derivatives live under `assets/digital-footprint/media/`.
- Thumbnails target compact gallery/tile presentation.
- Previews target project-card presentation.
- Browser tiles use dedicated compact logo derivatives where available.
- Transparent logos must retain alpha and clean edges.
- Do not point card markup directly at multi-megabyte originals.
- Before removing or renaming an asset, verify all HTML, CSS, data-manifest and JavaScript references.

## Known limitations

- The distributable ZIP contains both optimized derivatives and full-quality artwork. Runtime page transfer remains lower because full assets are requested on demand.
- Cross-origin iframe security remains controlled by each external website.
- `navigator.connection.saveData` is not exposed by every browser; normal delivery rules apply when it is unavailable.

## Testing expectations

Before release, verify:

- All seven categories open and return correctly
- Standard decks hydrate only current/nearby card previews
- Distant large originals are absent from the category-open network path
- Photography uses thumbnails and preserves click/drag behavior
- Asset Viewer displays preview, upgrades to original and retains preview on failure
- Previous/next viewer navigation works without blank flashes
- Focus trap and restoration remain intact
- A/Enter and ESC/B behave consistently
- NXE Browser tiles use compact derivatives and its scrolling/rail/fallback remain stable
- Desktop and mobile layouts have no global horizontal overflow
- All local references resolve and the console is free of runtime errors

## Recommended next phase

**v347 — Physical Mobile QA and Measurement**

Use Samsung Galaxy S24 Ultra and S25 Ultra testing to verify sustained smoothness, map gesture stability, device temperature and any remaining browser-specific safe-area or touch edge cases before expanding My Footprint.


## v342 interaction hotfix

Adjacent project cards are full-card click targets again. Asset-viewer affordances are active only on the focused card.


## v343 navigation fixes

- The subsection X control returns to the Digital Footprint selector instead of closing the full modal.
- Clicking the faded selector panel returns to the Digital Footprint selector.
- The Digital Footprint back control uses a CSS-drawn chevron aligned to the text.


## v344 mobile-first stabilization

- Home pagination and the green X action remain visible above mobile browser chrome.
- The Profile Card outer shell is locked; its inner glass content box is the sole vertical scroller.
- unicore.cc home uses a centered horizontal quest carousel, readable progress/message cards and contained controls.
- Every unicore field page has a dedicated mobile reflow. VistaPort uses a compact HUD and two-column module grid; WebCore becomes a touch route board; codicom stacks its workshop panels; wwCORE contains its ceremony and controls.
- Digital Realms opens as a vertical mobile experience rather than a compressed desktop canvas.
- Phone-width validation target: 390 × 844 CSS pixels, with no document-level horizontal overflow.
