- Main video: 30s CTA spot (ProRes master re-encoded to 7.4 MB H.264)
- New 'loops' project field: silent autoplaying clips with a caption;
used for the square product visualisation R&D render (1.9 MB)
- Poster and gallery stills from the spot; summary/credits updated
- Ignore .mov masters in content/
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Phones held sideways get the picture full height with a narrow control
column on the right (new `land` Tailwind variant), settings as a side panel
- Framing crop (Full / 16:9 / 1.85:1 / 2.39:1, default 2.39:1) applied to the
picture, taps and stats, so the verdict only counts what's in frame
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Phone camera or photo -> WebGL shader that classifies every pixel against
the sampled screen colour; colour-blind friendly (stripes, motion, words)
- Views: Spill, Screen (flat colour), rough live Key, Evenness
- Spill = worse of lean toward the screen hue and the green/blue despill
limit, tuned on a real Alexa car-interior plate (teal screen, green bounce)
- Plain-English verdict incl. widespread colour cast; tap for readouts
- Pick screen / pick white (neutral reference), freeze, exposure/WB lock
- Service worker caches each /set page under its own path (spill page no
longer overwrites the markers page offline); link from /set
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Viewer ignores taps, swipes, pinch/double-tap zoom, long-press menus,
keys and Back; hold the top-left corner 3 s to show controls, which
re-lock after 6 s or via the Lock button
- Back is trapped with a guard history entry; Close unwinds it
- Plain grey moved above 'This screen'
- Tips for OS-level lock (iOS Guided Access, Android app pinning)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The worker isn't controlling the page on the first visit, so warm-up fetches
bypassed it and no images were cached. The page now writes markers, its own
JS/CSS/fonts and /set/ straight into the cache and only then shows
'Works offline'.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Unlinked, noindex page listing marker PNGs from public/set/markers
(discovered at build time; filenames encode device/resolution/orientation)
- Detects the current screen and offers the closest match first
- One-tap full-screen viewer: wake lock, hidden controls, full grid/edges
toggle, fill vs fit by aspect, back button closes, deep links via hash
- Offline service worker + home-screen manifest for iPhone full screen
- Marketing chrome moved into an (site) route group so /set has none
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Matches the vfxreview/xbid setup: runner pulls and runs docker compose;
nginx:alpine serves the static export on the npm_default network behind
Nginx Proxy Manager. DEPLOY.md has the one-time SSH setup steps.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Site URL (sitemap, robots, Open Graph), footer and deploy guide now target
twotalesvfx.com behind Cloudflare.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Project cards stack credits under title on small screens
- Fluid headings on /work and project pages; next-project banner wraps
- Footer, back, award and nav links padded to ~44px touch targets
- theRender.Fish marked as in-house project
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summertide nominated for Best Achievement in Visual Effects - TV at the
19th South African Film and Television Awards (2026).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Posters from TMDB (Baby Farm, Die Affêre, Baba Segi) and a 2:3 crop of
Blood Sisters S2 press art. Baba Segi flagged as upcoming (cinemas 4 Dec 2026).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the Dec 2024 company profile: Pretoria location, founding year, service
list with stills, and 14 film/series credits with posters. Festo F1 spot
transcoded for web (cropped letterbox, 14 MB, faststart).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>