STADIUM ELITE Candidate: first-goal-browser-guidance-2026-09-13 MEASURED IN-APP BROWSER GUIDANCE Added optional browser advice after >=12-second readiness or three consecutive active samples below 20 FPS. Only known in-app browsers qualify; advice stays inside pause/settings and results, never active gameplay. The action gives app-menu instructions and copies the documented host share URL, with a selectable-field fallback when clipboard access fails. It does not pretend to force an external browser or transfer a running match. Dismissal lasts the page session. Main-thread parsing, real-device certification and production retention remain open. FIRST GOAL AND LITE ENTRY Default 75-second attack with contextual movement, completed-pass and shot objectives; Barcelona starts in possession close to goal. Objective feedback, natural goal celebration, points, local personal best, immediate replay, daily UTC starting layout, Full Match, opt-in leaderboard submission and share/download card. The short timer uses visible unpaused real time rather than slowing with capped simulation catch-up. Full Match remains six active minutes, with 10/15 options. No entry signup; the host SDK has no documented signup-opening method. Device-matched single LOD, identical embedded JPEG extracted to one shared local file, explicit quality upgrades and alternate-rig fallback. Existing high-detail geometry preserved for Ultra, no lossy decimation or added compression decoder. Actual pitch render occurs before main-thread model parsing. Ordered application bundle reduces script request count. Existing 45 Gerald recordings form one sample-indexed MP3 atlas. Lite defers expensive audio until later input, a goal or explicit sound request. Low shadow budget already existed and is preserved. Three-trial local Chromium medians (milliseconds since navigation, software GPU): desktop pitch 4087 -> 1471, playable readiness 8681 -> 8484, first actual pass release 11020 -> 10408. Portrait phone pitch 3830 -> 1391, readiness 7063 -> 7380, first pass 9014 -> 9172. X-like phone pitch 3856 -> 1579, readiness 7079 -> 8544, first pass 8831 -> 10600. Phone/X total readiness did NOT improve in this batch, which overlapped other software-rendered checks. Earlier one-run measurements improved modestly; do not treat either as physical-device certification. Payload and earlier pitch are verified gains, not a claim of universally faster control or improved retention. At the first-action sample, median resource body bytes/requests: desktop 14,972,479/45 -> 6,918,336/21; phone 15,204,751/52 -> 5,457,314/17; X-like phone 15,157,374/51 -> 5,457,314/17. Baseline individual speech requests were still arriving at that early sample. A later initial-play baseline snapshot reached 15,646,986/78. No network throttling or production host latency was simulated. Real touch-only joystick, pass and held shot reached all three objectives and natural goals in 3.30s, 4.40s and 5.18s of active challenge time on 280x568, 390x844 and 844x390. This is scripted expert input, not novice comprehension timing. Keyboard and result flows checked at those sizes plus 1280x720. Results, mocked-host score save, card download, rematch and pause passed. Daily inactivity timeout ended at exactly 75 active seconds, 76.36 wall seconds including an intentional 1.2s pause. Daily restart retained its date seed. Full Match entry, goals once, boundaries, posts, halves, offside, replay and lifecycle passed; discipline/falls/actions and unchanged rolling solver regressions passed. Gerald atlas decoded all 45 entries and routed actual player6 pass, player9 shot and player20 goal calls, with pause/resume and zero page errors. Model fault injection: primary LOD failed 3 times then alternate succeeded; both startup LODs failing produced visible recovery, not silent readiness. Storage-denied entry and explicit Ultra upgrade passed. Zero-width joystick input remained finite; unrelated injected host error did not stop the game. Root index.html official playtest reached gameplay, errors=[], frozen=false, slowest response 139ms. Screenshots inspected. Production incident root causes remain unconfirmed without stacks/URLs. M_ID is absent from the page; no application WebView postMessage bridge exists. Fixed page-owned amplification of external errors into fatal screens and the concrete zero-width joystick division. Actual Safari, WebView and hardware-controller tests remain open, as do platform attribution/identity/recommendation changes, signup-panel API, and post-release retention measurement. No new full-length match run claimed. PRECEDING BALL CORRECTION CONTINUOUS BALL DECELERATION The old solver already applied ground resistance everywhere, but long runout reproduced the complaint. Increased constant grass resistance from 1.45 to 2.3 m/s2 and speed-dependent turf drag from 0.006 to 0.012. Both act in every grounded substep, regardless of nearby players. Small residual speed and spin settle to exact zero, with no minimum-speed floor. Ground spin scales with translation, bounce grip now damps tangential spin, and body/post/reception velocity changes realign and cap residual spin so pre-contact energy cannot push a newly slowed ball back along its old path. Air drag and vertical bounce law are retained. Through-ball distance estimation shares the new coefficients. At identical launch velocities, the untouched 14 m/s pass stops in 4.32s over 24.38m versus 7.08s/40.06m before. Speeds at 1/2/3/4s: 8.54/5.63/3.10/0.75 m/s versus 9.90/7.97/6.22/4.59. The 31 m/s shot with 4 m/s lift stops in 6.88s over 75.70m versus 10.49s/103.48m; speeds at 2/4/6s: 15.15/7.18/2.04 versus 15.78/10.75/6.92. A ball dropped from 3m with 8 m/s horizontal speed settles in 4.42s/20.97m versus 5.66s/23.91m. A separate softened-collision fixture exposed actual reacceleration: residual shot spin made 8.06 m/s rise to 8.31/8.55/8.77 at 0.5/1/1.5s. With collision spin bounded to the new velocity, it falls to 6.59/5.23/3.95 and stops before 3.5s. This is game tuning, not a real-surface empirical calibration. 30/60/120Hz roll results match, rolling speed falls monotonically, varied forward/back spin settles, a reversed body deflection does not accelerate again, and resting balls stay at rest. Passive roll/shot energy tests passed. Core goals, boundaries, posts, halves, offside, replay and SDK lifecycle passed after updating the historical driver from obsolete J to current S. Close-control reception tests passed. Existing resilient player loading, Gerald speech and entrypoints remain intact. Actual match release fixtures reached exact zero speed with owner=-1 on phone and desktop, with monotonically falling samples and a live match clock. An initial wall-time-limited driver stopped sampling just before rest on a slow software frame sequence; the corrected driver waits for the simulation result. Keyboard/synthetic-controller/touch actions, through-ball hold/cancel, discipline and 24 penalty boundaries passed. The 45-clip Gerald actor-name fixture passed without changed audio. Moving and stopped screenshots were inspected. Unmodified entrypoint kickoff, passing, movement, pause/resume and commentary controls passed at 280x568, 390x844, 844x390 and 1280x720, with errors=[] and no external runtime requests. No new full-duration match, real-device frame-rate or human ball-feel acceptance is claimed. PRECEDING RESILIENT PLAYER LOADING INDEPENDENT PLAYER LOADS AND AUTOMATIC RECOVERY Each of the three GLBs and four skin atlases gets up to three independent attempts, with 350ms/900ms backoff, cache refresh on retry, and 20/30/45-second attempt deadlines. Kickoff needs only the first usable skinned rig. Other geometry and skin requests continue in the background and update the existing players when ready; a successful low-detail rig or embedded skin remains usable when optional assets fail. The previous 30-second player race and competing 45-second boot watchdog no longer preempt the loader's retries. Exhausted optional assets appear in settings. All three models exhausting retries shows a scrollable error with exact URLs, stages, attempt count and error messages. The bundled GLTFLoader normally selects ImageBitmap for Safari 17+, passing premultiplyAlpha and colorSpaceConversion options. Player model decoding now explicitly uses HTMLImageElement textures instead. Independent fetch/body/parse diagnostics avoid the opaque whole-loader failure. No compressed model or texture extension is required. Optional Web Audio is unlocked in the first real gesture and reused; stadium effects use local MP3s. Optional storage and host SDK errors remain nonfatal. Incomplete optional broadcast framebuffers fall back to direct rendering. Shader, script, asynchronous and context-loss failures expose recovery rather than silently leaving a frozen match. Chromium fault injection passed transient first-two-attempt HTTP 503s on all seven assets, unavailable medium/high models with low-only play, all skins unavailable, malformed medium GLB, rejected ImageBitmap with streams/OffscreenCanvas absent, delayed optional detail, slow model responses beyond the former boot deadline, and first-attempt timeouts. All-model HTTP 503s correctly showed the detailed error after nine real requests. The late-detail case started in about 9.65 seconds while optional responses were pending; all models delayed 25 seconds per request still became ready around 50.32 seconds. These software-renderer timings are observations, not performance guarantees. One test initially asserted skin retries before their timeout elapsed; waiting for the background retries corrected that test without a game change. Cross-origin iframe checks passed kickoff, movement, a controlled goal, pause/settings/resume with storage getters denied, a denied AudioContext constructor, and a resume Promise that never resolves. The last case's context still became running in Chromium, so it verifies nonblocking Promise handling, not Safari's audio suspension behavior. Injected context loss, invalid shaders, missing scripts and unhandled rejection produced visible recovery. Earlier driver attempts timed out on an early desktop click and tried to select hidden desktop settings; the final driver waits for desktop readiness and opens settings explicitly. Final responsive regression passed kickoff, input, pause/resume and control bounds at 280x568, 390x844, 844x390 and 1280x720, with no page errors or external requests. The late-upgrade fixture observed all 22 players initially using 10,517-vertex fallback geometry and embedded skin, then distance-selected 28,296-vertex geometry and all four roster atlases without restarting. The Gerald fixture decoded all 45 clips with zero failures and verified actual passer player6, shooter player9, scorer player20 and pause/resume routing. The supplied phone smoke reached gameplay, errors=[], frozen=false, slowest response 828ms. Narrow/wide fallback and detailed-failure screenshots were inspected. The existing 45 ElevenLabs Gerald - Exciting Older Voice clips and respectful upbeat transcripts are preserved. Actual Safari was not run here because WebKit is unavailable; the user's alternating Safari success/failure reports are separate evidence. The original first failed asset and exact Safari root cause remain unproven. No physical-device FPS, full-match rerun or human voice approval is claimed. PRECEDING GERALD BUILD GERALD AND ACTUAL PLAYER-NAME CALLS Replaced the complete 23-event speech set with the requested ElevenLabs Gerald - Exciting Older Voice, exact ID UPZIegnxY8z2Ya7jignw. Added 22 roster-name clips linked to actual pass/shot actor IDs and the real goal scorer ID. Player-name calls share a cooldown; goals can follow the team call with the scorer's name. All 45 local MP3s total 1,026,376 bytes; superseded George/Rachel audio is removed from the publishable bundle. Soccer-contact, card/restart, motion and startup corrections remain. Actual index.html Chromium fixture decoded 45 clips with no failures, observed active Web Audio playback of player6 from a pass, player9 then shot from a real shot action, and goalaway then player20 from a goal scored by player20. Touch goal continuation and pause/resume passed with errors=[]. The portrait goal screenshot was inspected. Controlled fixtures verify routing, not human delivery preference or perfect pronunciation. Final entrypoint checks passed at 280x568, 390x844, 844x390 and 1280x720: kickoff, passing, movement, pause/resume, touch hit-target bounds and speech mode controls. Captured page errors and external requests were empty. Portrait, landscape and desktop screenshots were inspected. Document loads measured 0.10-0.145s, excluding subsequent 3D preparation. The supplied smoke reached gameplay with errors=[], frozen=false and slowest response 203ms. The 45-clip commentary regression passed team goals, priority interruption, penalty then card, crowd ducking, mute, pause, Off/Highlights and blur cancellation; loose-ball capture regressions also passed. No new full six-minute match run, physical-device FPS certification or human voice approval is claimed. A 24.756-second recording captures the actual canvas and Web Audio mix, including normal opening play and a controlled Madrid goal followed by player20. Its H.264 video/AAC audio streams and extracted frame were checked. Extending the actor fixture initially left an accidental paused state because its string replacement no longer matched; that driver defect was removed, and independent passer/shooter/scorer checks passed without a runtime code change. PRECEDING SOCCER-FOUL AND FIRST-VOICE REVIEW SOCCER FOUL FREQUENCY AND FIRST VOICE REVIEW Removed relative-speed knockdowns from generic body separation and from successful standing tackles. Only illegal slide contact triggers the existing fall/whistle path. Added per-player persistent fouling: three lesser fouls since the last card earn yellow; reckless challenges still earn immediate yellow and dangerous slides red. Second yellows dismiss, restarts retain counts, and a new match clears them. The deliberate foul stoppage displays a countdown followed by explicit restart instructions; Real Madrid restarts automatically. Verified actual wide/portrait fixtures: 36 ordinary contact cases and 10 clean standing ball wins per screen caused no fall or foul. Six lesser fouls produced none/none/yellow/none/none/red, with second-yellow dismissal. Real slide input stopped play, then automatic opponent and human touch free kicks resumed clock progression. Discipline and action regressions passed, including 24 penalty boundaries. The first correction driver assertion read hidden restart text with innerText; using textContent verified the same guidance already visible in the event banner. No application freeze was reproduced. Commentary loaded all 23 clips and passed interruption, mute, pause, goals and penalty/card tests. Screenshots of foul, restart and resumed play were inspected. Only the opening kickoff clip is replaced by a 9.547-second enthusiastic ElevenLabs George recording. All other 22 audio clips are unchanged. The longer opener yields to foul/card/goal calls. Audio was sent for review, without claiming human approval or a named commentator's likeness. PRECEDING MOTION/FALLS CANDIDATE LIVE RUNNING, KICKING, FALLS AND STARTUP Replaced the short shuffle-like foot travel with full planted/swing paths. Speed controls cadence, stride reach and foot lift. Visible Low-detail athletes also receive foot IK. Kicking now has explicit backswing/contact/follow-through foot targets; gameplay kick contact times remain unchanged. Height-dependent ragdoll impulse adds tipping torque. Contact, foul, card, immobility and recovery rules are preserved. Controlled actual-match fixtures, driven through real ArrowRight/D/A inputs, verified running deformation, shot action progression, contact-triggered falling and standing recovery at 1000x650 and 390x844. Initial measured foot travel was about 0.86m; fallen head height reached about 0.12m. Recorded frames were inspected. These are controlled fixtures, not professional motion capture or human realism acceptance. The reported 20-second navigation timeout did not reproduce in the initial supplied smoke rerun. Startup tracing found scene construction delayed the document load event and first rendering still performed multi-second uploads after readiness. Construction now starts after document load; first-frame uploads finish before ready/kickoff. Three Chromium cold loads changed from about 4.03-4.57s to 0.12-0.17s for the document; honest 3D-ready time is about 10.27-12.32s on this software renderer. Ready includes the formerly deferred upload stall. The final supplied smoke reached gameplay with errors=[], frozen=false, slowest response 384ms. Keyboard/synthetic-controller/touch actions and discipline/24 penalty-boundary regressions passed after motion changes. No new full six-minute match completion or physical Safari/Firefox/controller benchmark is claimed for this revision. Previous full-match measurements below belong to the preceding build. The 14-second expressive stock-voice audition remains separate, with full commentary regeneration on hold for review. PRECEDING LIVE-COMMENTARY REVISION LIVE COMMENTARY, LOOSE BALLS AND MOTION Added 23 local ElevenLabs Turbo v2.5 speech clips and event-priority playback, with Live/Highlights/Off, separate speech gain, crowd ducking, major-call interruption and pause/mute/background cancellation. The later speech request supersedes all historical commentary deferrals below. One eligible automated outfield chaser per team pursues each loose ball regardless of last touch, with chaser hysteresis and boundary-reaching targets. Other players retain tactical assignments. Neutral selected players can chase automatically; human movement takes priority. Old arrival clamps and stale intents no longer stop the designated chasers short of boundary or contested balls. Render interpolation smooths fixed-step transforms, body bob is smaller, and slow delivery no longer skips visible poses over two to four rendered frames. Bone rotation avoids repeated world decomposition. High geometry begins above 95 render pixels, medium above 26, with hysteresis. Auto reduces effects first and can reduce linear resolution to 65% under sustained overload; UI remains native size. Manual presets retain 85%. Shader warmup runs before ready, and bounded fixed-step catch-up handles frames up to 100ms. Verified commentary priority, goal calls for each team, penalty then card, pause/master mute, Off/Highlights and 23 decoded clips. Eight boundary/central loose-ball fixtures and a between-opponents fixture regain possession with exactly two designated chase roles. Earlier current-revision keyboard/touch/controller, through-charge and discipline tests passed without captured errors. The final default-duration match completed exactly 90:00 in 414.76 wall seconds including stoppages, under automated pass-only input, score 0:17. New match, pause and resume passed. Across 6,624 active frame intervals: median 50.1ms, p95 83.4ms, maximum 250ms, zero above 500ms, captured page errors=[]. This is functional completion evidence, not human difficulty acceptance. The software renderer remained below its 30 FPS target. An actual canvas recording includes the page's Web Audio mix, natural kickoff/pass calls and a deliberately triggered goal fixture. Bone-pose parity over 500 samples across five facings and actions differed by at most 0.00001044 in world-matrix components versus the prior turn implementation, below the 0.0001 numerical tolerance. An isolated 10-second software-Chromium comparison before the final adaptive/pose cadence changes reduced median rendered triangles from 529924 to 194250, median frame interval 149.9 to 83.3ms, p95 interval 216.6 to 133.4ms. A 120-pose probe reduced world-matrix calls 35295 to 10050 and elapsed 12.5 to 8.6ms. These short runs follow different trajectories, not a controlled hardware benchmark, and remain below the 30 FPS target. No physical Safari/Firefox/device freeze fix or FIFA/PES realism acceptance is claimed. HISTORICAL SCAN-STYLE REVISION SCAN-STYLE FOOTBALLER FOLLOW-UP New photographic-style T-pose concept and 300k-triangle generated source, locally bound to the existing skeleton after the supplied automatic rig failed. Exports use 120k/36k/11k triangles and local 2048px atlases. Smoothed surface normals and blended weights retain facial shape; softer skin masks avoid pale flecks on darker tones. Kit shading preserves fabric folds, adds club crests and back names/numbers, and excludes boots from white-kit recoloring. The scorer now raises one arm rather than holding an arms-out pose. Goal camera follows facing and hides selection markers. Actual index.html at five narrow/wide sizes, charged W release/control cancellation, close possession, 24 penalty-boundary cases, cards/dismissals and keyboard/synthetic controller actions passed with no captured page errors. The actual-entrypoint charged-W sequence was recorded; controlled goal and procedural-pose renders were inspected. Physics and rule implementations are unchanged. This is still a generic generated athlete and procedural animation, not a scanned professional likeness, physical-device frame-rate certification or accepted FIFA/PES parity. HISTORICAL DETAILED FOOTBALLER REPLACEMENT Replaced the old footballer geometry and UV atlases, not just the camera. New generated source: about90k triangles. Automatic rigging failed; local Blender repair bound the new mesh to the existing known skeleton, aligned the A-pose, welded duplicate seam vertices, smoothed surface shading and transferred/blended skin weights. Initial hand spikes and seam splits were caught in rendered poses and repaired. Match LODs are about64.8k/32.4k/11.7k triangles with2048px locally baked light/tan/brown/dark texture atlases. The old unused assets moved to the workshop. Goal framing is closer and clears stale restart hints. All gameplay physics and referee decisions are retained. This is a generic generated athlete with procedural animation, not individually scanned player likeness or professional motion capture. Visible deformation, hardware frame rate and commercial-game realism still require human acceptance. Replacement verification: actual index.html kickoff, movement, contextual touch actions, pause/settings/help and resume passed at 280x568, 390x650, 390x844, 844x390 and 1280x720. Supplied landscape smoke reached gameplay with no captured errors or frozen frame. Controlled action, through-charge, closer-possession and discipline regressions passed, including 24 penalty-area cases. Goal/continue fixtures and the actual renderer's action poses passed. A real touch-driven match clip and controlled pose clip were recorded, and extracted frames inspected. These checks are not a full six-minute match rerun, physical-device/controller testing or human realism acceptance. HISTORICAL PLAYER VISIBILITY REVISION PLAYER VISIBILITY FOLLOW-UP Broadcast remains default but now frames action closer, scaling camera distance with screen height so landscape phones do not shrink players into tiny figures. Tactical retains its wide overview. Nearby actors use the existing highest-detail skinned geometry above 38 projected pixels, with hysteresis; far actors retain cheaper LODs. Footballers use physical materials on software/Low as well as hardware. Nearby animation updates every rendered frame within 22m instead of alternate-frame posing. No physics, W charging, close-control or discipline rule changed. Matched stationary kickoff frames: selected-player projected height changed 33.8 to 55.4px at 390x650, 24.0 to 54.0px at 844x390, and 44.0 to 63.2px at 1280x720. Nearby LOD changed medium to high. Eight controlled pass/cross/clearance/rebound framing cases across portrait and landscape passed. Actual entrypoint at five sizes, through-charge, possession and discipline regressions passed. Screenshots and an actual mobile-play recording were inspected. These checks do not establish hardware FPS or commercial-game realism. A new 90k-triangle generated footballer was tried and inspected in the workshop. Its automatic rig failed in the asset tooling and the preview showed surface ripples, so it is not shipped as an unanimated replacement. The playable existing rig is retained. Professional likeness, higher-fidelity animation and human visual acceptance remain open. LONG-HELD THROUGH BALL FOLLOW-UP Extended W charge from the previous 8 to 35m at one second to an estimated 8 to 65m at 1.5 seconds. Longer holds increase actual kick speed under the unchanged turf solver, capped after 1.5 seconds. The charge gauge and release share one calculation. Direction is no longer skewed by individually clamping target coordinates at pitch edges: an overhit diagonal pass can cross a touchline. The same behavior applies to Y/Triangle and optional Full-touch Through. Closer possession, easier ordinary ground pickup, mobile Simple default, Broadcast camera, cards and penalty-area rules are retained. Controlled released-ball travel at holds of 0/.25/.75/1/1.5/3 seconds was approximately 7.0/16.2/34.7/43.9/62.4/62.4m, versus the former 33.1m maximum. The distance label is an estimate of unobstructed turf travel; receptions, interceptions and pitch boundaries can end travel earlier. Keyboard repeat and real 1.6-second hold, pause/blur cancellation, synthetic Xbox/PlayStation, actual Chromium Full-touch release/cancel and diagonal overhit throw-in passed. Closer-control and 24 penalty-boundary regressions passed. These are browser/controlled tests, not physical-device or human acceptance. CLOSER BALL CONTROL FOLLOW-UP Reduced ordinary carried-ball offset and foot-touch intervals, shortened reception delay, and increased ground pickup reach only below 22m/s. Kept independent ball integration, earliest eligible contact, opponent possession protection and high-speed shot deflection. Matched stationary/run/sprint mean distances changed from .524/.854/1.009m to .343/.566/.675m. A stationary ball 1.05m away is now captured, while a 32m/s shot remains a deflection rather than guaranteed possession. Pass release, contact ordering, keyboard/controller actions and core rules pass. Penalty awarding passes 24 area/boundary cases across both teams and ends. HISTORICAL DISCIPLINE FOLLOW-UP SLIDING DISCIPLINE FOLLOW-UP A slides now sweep for opponent-body contact before ordinary body separation. Late/body-first contact stops play. Reckless contact earns yellow, dangerous force/from-behind contact earns red, and a second yellow dismisses. The opponent receives a direct free kick or penalty in the defending penalty area. Both teams share the decision rules. Dismissed players are excluded from selection, contacts, passing, marking, offside, rendering and restarts; fewer than seven ends the match. Card history is readable in match status/events. A brief knockdown is shown with the clock stopped, not persistent medical injury simulation. Controlled browser cases passed yellow, red, second yellow, clean/missed slides, actual fixed-step A collision, stopped clock/input, pause, free kick, penalty shot, dismissal selection/kickoff/offside, below-seven ending and new-match reset. Keyboard/controller/action and fixed-step goal/boundary/offside regressions passed. A phone scenario was set up then driven with real A and touch pass, showing red, stoppage and free kick. Judgement remains simplified, without advantage, full IFAB rules, injury substitutions or a referee character. HISTORICAL MOBILE-ONLY SNAPSHOT MOBILE USABILITY FOLLOW-UP Simple touch is default: joystick, two contextual actions, one pause/menu. Possession uses Pass/Shoot, defence uses Switch/Tackle; outer joystick range sprints. Advanced controls remain optional in settings. Compact scoreboard and player-name strip replace the crowded HUD; help, sound and tactics move into pause. Default mobile onboarding is a short pre-match hint, not an in-play lesson overlay. Broadcast is default by request. Events and restart notices are small bottom status text, not central panels. Actual index.html driven at 280x568,390x650,390x844,844x390,1280x720. Touch kickoff, movement, actions, pause, sound, help, strategy, Full/Simple switching and resume passed. Focused real touch events with controlled match fixtures passed pass/shot/tackle/switch/header/volley and outer-stick sprint at 8.60m/s after half a second. Pause/layout changes clear held input. Keyboard and synthetic Xbox/PlayStation regression passed. These browser checks do not replace real-device or human mobile usability acceptance. Sliding-foul/card request is the next stage, not implemented in this mobile-only snapshot. HISTORICAL CONTROLS-CLARITY CANDIDATE Prepared 11 September 2026 CONTROLS AND CLARITY FOLLOW-UP, IN VERIFICATION New arrow/S/A/D/W defaults, E/Shift sprint, Ctrl/Caps protection and Q/C finesse. Xbox X/B and PlayStation Circle/Square shoot/loft mappings, contextual shoulder-button finesse/switch and right-stick feint/knock-on. Sliding tackles have committed travel/recovery; aerial short pass heads toward a teammate; shoot attempts a low volley or higher header. These are procedural action poses, not professional captured animation. Player focus is closer by default, with screen-size player LOD; Broadcast/Tactical remain. Airborne framing uses current height and bounded velocity lead, with continuous exponential smoothing. The ball contact shadow remains a single cheap gradient quad. Duration: six-minute default plus ten/fifteen active-minute choices for the next match, changing clock ratio only. No alternate pace setting is shipped without supporting tuning/playtests. Loose-ball contacts now select earliest swept entry among eligible keeper/outfield candidates instead of keeper-first and roster order. Intended target never curves the ball. Synthetic Chromium action/contact tests pass for keyboard, Xbox and PlayStation. Header hit/miss, passing header, volley, slide, finesse and right-stick skill checked. Fixed-seed one-second duration invariance checked. Core 30/60/120 timing, goals/boundaries/post, halves, offside and lifecycle pass. Responsive entrypoint checked at 280x568,390x844,844x390,1280x720. Actual six-minute match reached exactly90:00 in374.25wall seconds including stoppages, score0:4 under pass-only automation; new match/pause/resume passed, errors=[]. That run preceded only the final portrait look-target adjustment. Fifteen-minute duration implementation reached90:00 in945.54wall seconds, pause held the clock, errors=[]; it predates later contact/render changes. Landscape72 and portrait12 controlled-flight camera cases passed sampled-frustum checks, not full crowded human trajectory acceptance. Real controllers, real Safari/Firefox, human challenge and full A1-A4 acceptance remain open. A5 replay, A6 Watch/Simulate, A7 season, A8 custom clubs are planned stages, not implemented. Commentary remains deferred. HISTORICAL STRATEGY-PHYSICS CANDIDATE BALL, STRATEGY AND RENDERING FOLLOW-UP The sections below this follow-up are historical candidate evidence, not measurements of this revision. Ball: dribbling now applies intermittent velocity changes and lets the ball integrate between foot contacts. Sharp turns can lose control; close control uses shorter intervals. Receivers preserve a fraction of incoming momentum. Ground contact transfers sliding spin and dissipates rolling energy; airborne motion uses quadratic drag, gravity, modest curl and energy-losing bounce. Through-ball power estimates distance under the same turf law as every other ground ball, replacing its separate 5.5 m/s2 stopping override. This is a focused football solver, not a newly integrated Box3D engine. Kick windup, aiming and shared simulation limits remain. Strategy: choose clear carrying lanes, hold forward runs onside before release, prefer progressive passes and cutbacks, discourage immediate return passes, and shoot when an outfield lane opens. Keeper position is no longer mistaken for an outfield blocked shot lane. Fixed two defensive defects: braking during pursuit of moving carriers, and sprint-stamina loss while standing. Removed the human-only automatic proximity steal, so human defenders must time tackles like AI defenders. Rendering: moved the existing 28 flag wave equations into vertex shaders, eliminating per-frame CPU vertex deformation and position uploads. Cached local matrices of 408 static stadium nodes. In a software-Chromium CPU microbenchmark, median stadium update fell from about .0558 ms to below .0002 ms; whole-scene local-matrix recalculations fell from 1055 to 647 per traversal. This modest targeted improvement is not proof that user-reported Safari/Firefox stalls are fixed. No real browser/device performance budget is claimed met. A serial 15-second actual-play profile in software Chromium at 1280x720 measured equal median/p95 frame intervals of 33.3/50 ms for baseline and candidate. Simulation median/p95 was .1/.2 ms for both. Renderer CPU submission p95 was 2.5 ms baseline and 2.2 ms candidate. An earlier run with concurrent browser tests was slower for the candidate; an isolated rerun did not reproduce that difference. These short, differing-play scenarios establish neither a full FPS improvement nor the requested crowded-area/hardware latency targets. Deterministic candidate evidence: - Passive ground roll, shot, bounce and curl dissipate total modeled energy. Ground roll reaches zero without reversal. Through-ball estimates of 8/20/35 m travel approximately 7.7/19.3/33.9 m in isolation. - Fixed-step 30/60/120 render schedules produce identical 31.1517 m travel in the core scenario. Goals once, throw/corner/goal-kick, post, halves, delayed offside and lifecycle regressions pass. - Sixty identical-seed away attacks across buildup, central final third and wide final third: baseline 479 passes, 163 backwards, 1 shot, 1 goal; candidate 49 passes, 3 backwards, 47 shots, 15 goals. Box-entry scenarios 24 baseline versus 23 candidate. This tests finishing intent, not complete football strategy or human fairness. - Twenty scenarios per difficulty, same sprint attacking policy: Easy 20 chances / 5 scoring attacks / 1 opponent goal; Normal 16 / 0 / 0; Hard 4 / 0 / 4. Original walking policy: Easy 5 / 4 / 1; Normal 0 / 0 / 2; Hard 1 / 0 / 1. A chance is possession beyond x=34 with |z|<15, not expected goals. Hard reduces scripted success versus Easy; human challenge remains unaccepted until fresh matches. - Actual entrypoint exercised at 280x568, 390x844, 844x390 and 1280x720 with kickoff, touch expansion, HELP/events, pause/resume and hit-target checks. Screenshots were inspected. Synthetic controller regressions pass. Before/after pass, through-ball and shot recordings were captured in the page renderer. Final actual-entrypoint match: reached 90:00 in 377.72 wall seconds including stoppages, score 0:5 under automated pass-only input. Replay, kickoff, pause and resume passed, with no captured errors. This is functional completion evidence, not human challenge evidence. The supplied playtest reached gameplay with errors=[] and frozen=false. Graphics-loss/reload regressions passed narrow and wide, holding the clock still while the context was lost. Reception scenarios at 10 and 18 m/s settle under control; a 32 m/s shot deflects rather than sticking to the receiver. Commentary is explicitly deferred by the user, with no generated commentary files shipped. The attachment is a completion-audit specification, not a game asset. The PRD remains partially complete, with real-device performance, human physics/difficulty/onboarding studies, real controllers and screen readers still outstanding. HISTORICAL: ENTRYPOINT RECOVERY FOLLOW-UP This revision retains the gameplay candidate below and adds boot.js before game dependencies. Script-load failures, initialization exceptions, failed player assets and a 45-second overall startup deadline now show an accessible Reload match recovery panel. Known WebGL and player-loading failures use the same recovery route. Success cancels the deadline. Reproduced baseline: no failure explanation when a required script was blocked; after real WEBGL_lose_context injection, the game clock continued advancing behind a lost picture. Candidate tests at 280x568 and 1100x680 show the recovery panel, cancel input, pause lifecycle/audio and hold the clock exactly still after graphics loss. Reload starts a fresh match, not a restored saved match. The actual reload, kickoff, play, pause and resume path passed on both sizes, and screenshots were inspected. Gameplay-control and core-rule regressions also passed in Chromium 151.0.7922.34. These injected failures do not establish actual Safari coverage. The complete-match and performance measurements below refer to the preceding feedback-ai candidate. This follow-up did not repeat that complete wall-clock match; it exercised recovery plus gameplay regressions instead. LATEST PLAYER FEEDBACK 1. Stronger football AI Defenders no longer automatically drop to jockey speed while a fast attacker runs past. Hard chooses full sprint pursuit, inside cover and unique goal-side assignments, while retaining the human player's 8.7 m/s maximum, acceleration, collision rules and sprint fatigue. Easy and Normal choose less intense pursuit. Tackles require sustained proximity and a reaction interval. Away possession decisions evaluate forward progress, teammate space, interception risk, offside position and shot lanes. AI cannot read future user input. Possession changes reset its decision reaction timer. 2. Less distracting selection Switching updates the existing lower-left player name/number panel and pitch marker. It no longer generates a large central name announcement. Goals and rule/restart notices retain their central presentation. 3. Consistent opening lighting The introduction previously darkened the entire pitch with a strong overlay, then faded it after kickoff. The pitch overlay is now constant; only the introduction text has its own readability panel. A browser assertion verified unchanged directional light intensity, hemisphere intensity and overlay opacity across kickoff. Afternoon, golden hour and floodlights remain available. 4. Rendering work Reused vector/quaternion temporaries and cached bone lists eliminate 171,724 clone allocations per 150 full-IK frames of 22 running players in the measured animation scenario. Distant Low-preset players skip foot-placement IK; the selected player and nearby players retain it. Avoided redundant scoreboard/HUD writes and per-player frustum-vector allocation. Physics still uses a fixed 60 Hz step with bounded catch-up. This is not proof that Safari lag is fixed. 5. Other retained PRD improvements Hosted sound/lifecycle integration; stable pause/background behavior; persistent difficulty separate from strategy; input-adaptive HELP and skippable lesson; keyboard/touch/controller feint; semantic event log, announcement modes and status summary; controller reconnect/paused-input neutral latch; D-pad navigation in settings, help and match events; fixed same-tick halftime/kickoff announcement ordering. Expanded mobile actions no longer overlap HELP, and the lesson temporarily hides while More is expanded. REPRODUCIBLE EVIDENCE Environment: headless Chromium 151.0.7922.34, Linux 6.12.103-127.188.amzn2023.aarch64 container, software rendering. No physical Safari, iOS, Android or controller hardware was available. Runtime source was served from this bundle's index.html over local HTTP. Test hooks used only by deterministic scripts, never shipped. Actual complete match: 380.13 wall seconds including stoppages; clock reached 90:00, final score 0:10 under an automated pass-only input policy. Replay, kickoff, pause and resume passed; no captured page or console errors. This score is not a measure of human difficulty. Difficulty: identical 20-seed, 20-second attacking scenarios per level, same straight-run/pass/shot policy. A chance means reaching x > 34m and |z| < 15m with possession, not expected-goals quality. Easy: 20/20 chances, 4/20 scoring attacks, 7 opponent goals. Normal: 15/20 chances, 5/20 scoring attacks, 2 opponent goals. Hard: 4/20 chances, 0/20 scoring attacks, 0 opponent goals. Hard strongly reduced chance access in this narrow scenario. Normal scoring was not monotonically lower than Easy, so this does not establish complete calibration, fair human challenge or a target win rate. Different levels create different possession/stoppage opportunities within the short window. Animation CPU microbenchmark, 22 runners, 450 measured frames after warmup: Before, full IK: median 1.0ms, p95 1.1ms. Candidate, full IK: median 0.9ms, p95 1.0ms. Candidate, distant Low without IK: median 0.7ms, p95 0.8ms. These are CPU animation timings, not GPU frame rates, Safari measurements or end-to-end latency. Timings near this scale have timer-resolution and container noise limitations. Deterministic regressions passed: 30/60/120 render-schedule ground travel identical at 32.8273m; valid goal exactly once; throw-in/corner/goal kick; post rebound; halftime/fulltime; delayed offside including own-half involvement and uninvolved candidate; lifecycle restart. Synthetic ten-second background suspension preserved time and ball position without catch-up on restoration. Synthetic DualSense API checks passed: edge-only pass, shot/loft/through charge release, analog deadzone, sprint and pause neutral latch, held-input disconnect/reconnect, D-pad help navigation, awareness close, feint cooldown/no teleport, no switching-name central banner, persisted difficulty, event ordering and clearing. This is not real DualSense USB or Bluetooth acceptance. Actual Chromium layouts opened and visually inspected at 280x568, 390x844, 844x390 and 1280x720. Kickoff, More controls, help, event log, pause and resume driven. Expanded action centers were checked with elementFromPoint for obstruction. No captured page errors. The supplied playtest also reached gameplay with no errors or frozen state; its response figure is not a desktop end-to-end latency certification. Launch fallback: missing WebGL 2 shows a useful explanation. Hardware normal-map material path compiled under software Chromium. Firefox and WebKit executables were unavailable; neither was installed. All referenced runtime assets are local to the bundle. OPEN ACCEPTANCE AND LIMITATIONS Safari lag remains unverified on actual Safari. Real Firefox, Chrome/Edge desktop hardware, Safari, iOS and Android cold-load/full-match matrix remains open. Desktop three-minute 1080p FPS/p95, real-phone Low FPS, allocation/collision/render/input end-to-end profiling remain incomplete. No performance target is claimed met. No five-person blinded ball comparison, new-player usability study, fair-challenge human matches, real DualSense, NVDA/Firefox or VoiceOver/Safari test was performed. Before/after ball/animation clips and optional cached spoken commentary remain outstanding. This candidate ships stadium effects, not commentary. Offside uses player centres and simplified proximity involvement, not body-part VAR, goalkeeper sightline adjudication or every deliberate-play interpretation. Fouls/cards/substitutions are not simulated. The articulated falls are a particle solver, not anatomical rigid-body physics. Generated players are not individual likenesses. P2 contributor/fork publication status belongs to the hosting workflow owner. This bundle does not implement or claim a queued/running/ready publish system. No private contributor build or white paper was available. No speculative LLM calls run in simulation. This is a tested playable candidate, not certification that the entire improvement PRD is complete or that this archive has been published.