| @react-three/fiber SSR crash | raw three.js + dynamic ssr:false |
position: sticky dead under an ancestor overflow clip | manual fixed/absolute pin driven by the scroll handler |
| Beat text double-exposure | opacity half-width under 0.5 * step |
| CSS keyframe opacity vs inline fade | keyframe transform only |
| Shader VALIDATE_STATUS false, mesh silently invisible | match uniform precision across stages |
| Prompt-level "2048px" resolution request | ignored; use the structured image_config field, retry small returns, Lanczos-upscale stubborn frames |
| 2K frames still smear at oblique angles | texture.anisotropy = getMaxAnisotropy() |
| Depth maps stale after a frame upgrade | regenerate depth whenever the pixels change |
| Mouse parallax reads as "screen tear" smearing, not 3D | texture stretching at hard depth-map edges; Gaussian-blur the depth maps (radius ~7) AND drop the in-shader XY parallax to ~0.4, moving the 3D feel to camera-position mouse gain against the z relief |
| Preloader veil renders UNDER the copy overlays | an explicit z-index on the canvas host creates a stacking context that traps its children; remove it (DOM order already layers the canvas below) |
| Preloader hangs forever on one bad asset | count texture onError toward the loaded total |
| Exit-handoff gradient washes out mid-journey copy | scroll-drive its opacity (0 until the final leg) since it sits above the beats |
| Display font silently not applied | a later single-class base rule wins; use a descendant selector and verify COMPUTED font-family in the browser |
| Terminal lines type out of order when appended late | sequential clock with per-line t0, never per-line absolute timers |
| Demo hotkey fires while user types in a form | ignore when target is input/textarea/contentEditable; gate on terminal visibility; re-arm on a timer |
| iOS gyro dead | requestPermission needs a user gesture; bind on first tap, static on decline |
| Sound blocked by autoplay policy | create the AudioContext inside the toggle gesture, nothing at load |
| Dev server serves a STALE compile through restarts and a build-dir wipe | two causes seen: (a) a stray lockfile in a PARENT dir makes the bundler misinfer the workspace root (set the bundler root explicitly in local dev); (b) a PWA service worker caches chunks at the fetch layer (never register the SW in dev, and actively unregister leftovers) |
| Full-suite test timeouts at ~the per-test limit | parallel-load flake: rerun the failing files in isolation before believing the red; never run two full suites concurrently |
| Screenshot shows the wrong scroll position | the page can move between an evaluate and a screenshot call; re-scroll and capture in immediately adjacent calls |
| Pillow on Windows | use C:/ style paths |
| Slow hero model for sequences | gpt-image-2 for the hero only; nano-banana-pro for sequences and depth |
| First-hit dev compile exceeds nav timeout | raise the timeout or retry once |
:first-child misses the first beat | preceding siblings exist; use an explicit class |
| Screenshot too early | eased scroll and typing content need settle time before capture |