# Eagle Rush showcase and integration notes

## Product and delivery

The public presentation uses the Eagle Rush identity. Existing download filenames and the proposed `eagle-fight` integration identifier remain stable. The landing page is `index.html` and contains no embedded game. All four Play the demo links open `eagle-rush.html` in the current tab; the full Nest Casino preview remains at `play.html`. The separate Eagle Fight demo at `demo.html` presents a 3D ascent with cashout and its own rules. This is a partner demonstration with free demo credits.

The 15 October 2026 professional review uses the user's explicit baseline `fdc46d7abf0ee5519ae1c728acb719a3265e5a2c` on `professional-fdc46d7`; later `ac0e490` changes are excluded. Ten GPT-6.1-Sol tasks and a separate Astra chief cover implementation and independent review. Current validation and publication status are tracked in [PROFESSIONAL_REVIEW.md](../docs/PROFESSIONAL_REVIEW.md) and [COMMUNICATION_FILE.md](../COMMUNICATION_FILE.md). A local build does not publish a version.

The page addresses game aggregators, distributors, gaming operators, and integration teams. Since 20 October 2026 it is a scroll-driven film: 192 WebP frames of an eagle flight (`assets/film/d` for desktop, `assets/film/m` for phones) are scrubbed on a canvas while eight chapters explain the launch, the balloons, the coast, the landing, why the game exists, the measured numbers and the integration status. A Play button auto-plays the flight to the end; the page then lands on the Play the demo call to action with the three-step partner briefing beside it, followed by a one-screen case section with downloads. Every figure comes from `docs/GAME_RULES.md`, `docs/HYBRID_FLIGHT.md` and `docs/RTP_MODEL.md`; example values are labelled as examples. It does not claim measured retention, a guaranteed integration time, configurable certified RTP, provably fair verification, or jurisdiction approval.

## Current game facts

- Native HTML5 and JavaScript, with locally bundled Three.js 3D rendering, a Canvas 2D compatibility view, and fixed physics steps of 1/120 second.
- Player-selected launch power and angle, physical gates, light-streak contact impulses, and actual landing contacts.
- Eagle Rush has no fixed winnings cap; safe landings pay the full displayed cent value. Dice and Mines use their documented formulas without a shared payout cap.
- Engine29/coastal-hybrid-v27 uses a fixed10-credit stake, +5/+10/+25/rare+100 cash bonuses and ×1.5/×2/×3/×4/×5 with ÷2. Gravity60 and stronger real lift extend flights; islands320/water360 remain. New values are clean floating numbers; collectible light streaks give lift without money. Heldout835584flights include700416on the agreed171-cell grid:95.435107% grid,114.885239% default55/+35,24.447632% default net wins. Independent98816-flight review:95.670335% grid. Strategy-dependent overpayment and tail uncertainty are disclosed in HYBRID_FLIGHT.md, with full source hashes. No universal96% claim, landing deduction or adaptive payouts. Historical28 and earlier rounds retain their rules.
- Persisted conditions fix the actual geometry seed and eight financial seed words before aiming. One Start click computes the full flight through the first contact, including air resistance, gates and moving prey. The completed plan binds the seed, power, angle, integer-cent stake and math/engine version. Up to 4,096 adaptively recorded points bound the buffer. Validation binds the result to the recorded terminal contact and checks its structure and values without resimulating the entire flight for validation. Only a valid plan permits one debit and automatic takeoff; no extra confirmation is required. Cancellation, stale inputs, a ten-second work limit or an unfinished flight after 30 simulated minutes cause no debit or launch. These observation limits do not settle a loss.
- The world remains static at fixed coordinates. A continuous camera keeps the whole eagle and upcoming contacts clear of controls, without page jumps or launch zoom. The result stays hidden until actual contact. The result card distinguishes payout from net gain or loss against the stake. A failed settlement retains the same round ID and result and offers a retry without a new debit.
- The dotted aiming guide shows the initial ballistics with the same windless physics, before contacts; it does not promise the complete future route. Mathematical fields keep their actual positions and unchanged operations without decorative bobbing, pulsing or flicker. Actual hits retain feedback. The eagle model has a shaped white head, layered feathers and neutral lighting.
- Separate EUR/USD integer-cent demo balances, stored locally when browser storage works. New Engine16 flights require persistent storage and Web Locks; their failed writes roll back the debit or settlement and retain open round ownership. Historical games retain the live in-memory ledger after a write failure; unsaved state blocks idle-tab handoff until it can be saved. Failed reads block mutations rather than overwrite a newer saved ledger. The independent game and full-game views share the existing wallet on the same origin; the landing page places no wagers.
- English partner presentation, English Eagle Rush, Nest lobby, Dice and Mines interfaces, with en-US number and currency formatting since 20 October 2026. Project documentation and the Communication File stay in German. Further language and currency support requires scoped implementation.
- Randomness uses browser `crypto.getRandomValues`. External RNG certification and independently verifiable fairness are not implemented.

The separate `demo.html` uses Three.js r180 bundled locally under `vendor/three/` with its MIT license. Its distinct crash rules are documented in [DEMO_3D.md](../docs/DEMO_3D.md). Eagle Rush, Dice and Mines share the existing wallet with Eagle Fight; new wagers for the removed Eagle Crash are disabled while stored rounds remain recoverable.

## Proposed platform integration

The technical tab shows this reference session payload for review, not a live endpoint:

```json
{
  "game": "eagle-fight",
  "playerId": "your-player-id",
  "currency": "EUR",
  "stakeCents": 1000,
  "maxMultiplier": null,
  "requestId": "unique-round-request"
}
```

Production requires authentication, server-side random generation and outcome authority, independent currency ledgers, atomic debit/reservation, idempotent settlement, durable round recovery, and appropriate operator limits. REST endpoints and any WebSocket transport must be implemented against the actual operator platform. This page does not issue API keys or run a production wallet API.

This repository contains a browser preview only. It has no production API, payment processing, or server-side wallet, and this documentation does not authorize changes to another project.

## Contact flow

The partner briefing (`src/site/brief.js`) has three steps: what the partner wants, who they are (type, company, optional markets and player volume), and where to reply (name, work email, message). Each step validates before the next opens; a hidden honeypot field discards bots. Submission builds the brief and opens a pre-addressed email draft to `felix@streetheist.eu`, then shows a panel that says the email app holds the brief. No email is automatically sent, no lead is stored, and there is no false submission-success message. The provided address is used as supplied by the user; mailbox ownership/delivery is not verified.

To add server-side lead collection later, implement and configure an actual endpoint, delivery provider, error handling, and the applicable privacy notice, and keep the email draft as the fallback. Do not replace the current honest draft flow with an unconnected success state.

## Assets and tooling

The landing needs no CSS build step: `styles/landing-film.css`, `styles/landing-sections.css` and `styles/landing-responsive.css` are plain stylesheets, `src/site/main.js` boots `src/site/film.js` (frame loader, scroll progress, canvas, chapters, HUD, auto-play) and `src/site/brief.js` (the form). Lenis 1.3.26 (MIT, `vendor/lenis/`) smooths wheel scrolling. The film frames come from the eagle flight video (Nano Banana start frame, Kling flight, 8 s at 24 fps), extracted with ffmpeg and encoded with cwebp; `assets/film/poster.webp` is the first frame, `assets/film/horizon.webp` the blurred last frame behind the Play section, `assets/film/og.jpg` the share image. Reduced motion or a missing canvas switches to a still layout with the poster as background and the chapters stacked. The landing creates no game instance; actual 3D rendering belongs to the game page. The `tailwindcss` dev dependency is no longer used by the build and can be removed from the lockfile in a later install.

```sh
npm ci
npm run dev
npm run check
npm test
npm run media:kit
npm run build:game
npm run build
```

`npm run build` regenerates the downloadable kits and copies all four entry pages and their assets into `dist/`. It also builds the independent game under `dist/game/index.html` and creates `downloads/eagle-rush-game.zip`. `npm run build:game` builds only that independent package. It contains the game and its dependencies without the landing page or lobby, plus a local server that requires Node.js and no package installation. Local asset and module links, including Three.js core imports, are checked after copying. See [STANDALONE_GAME.md](../docs/STANDALONE_GAME.md).

The media kit contains a one-page PDF game/sell sheet, SVG wordmarks, a 1600×900 promotional banner and integration notes. `tools/media-kit.mjs` regenerates PDF and ZIP files with Node standard APIs. Landing artwork is presentation art, not a gameplay screenshot. The independent Eagle Rush package contains the actual game, its two preparation workers and local 3D assets.

## Accessibility and review

Semantic navigation, a skip link, focus states, native validation, keyboard tabs, live feedback and reduced-motion handling are included. Game dialogs have an accessible heading, Tab/Shift+Tab wrapping and an always-reachable sticky close control; changing currency preserves focus in the dialog. Eagle Rush initializes on its own page without automatic repeat betting or airborne cashout. During actual flight preparation, inputs and start actions are locked while Cancel and Escape remain available. Its status identifies 3D or 2D rendering. Current work uses native Safari for desktop, mobile viewport and gameplay checks; earlier Chromium checks are historical. Actual results and remaining issues belong in [COMMUNICATION_FILE.md](../COMMUNICATION_FILE.md); earlier Safari sessions and the historical counts below do not establish acceptance of the latest preparation logic.

Compiled CSS, vector promotional artwork, PDFs, PNGs, and ZIPs are generated/static assets rather than hand-maintained application modules.

## Historical reports

Earlier October partner-page, Engine 7 and browser reports describe their dated releases. They do not establish acceptance of the current baseline or professional changes. See [GAME_QUALITY.md](../docs/GAME_QUALITY.md) for the distinction and the current review links. No certified RNG, production API, real-money wallet or guaranteed return is implemented.

The unchanged one-page game sheet and brand artwork are an earlier general concept overview. Current Engine29 rules and measurements take precedence in this integration note and HYBRID_FLIGHT.md; no earlier sample is transferred to the new model. Visits now use the existing browser identity plus a server-keyed IP fingerprint; raw IPs are absent from the analytics database. Daily and lifetime aggregates record history without changing future outcomes. Shared IPs do not merge wallets.
