= 3 (HAVE_FUTURE_DATA) โ reflect this with the existing `.c-button--disabled` class rather than a new one. - Clicking mute toggles video.muted and swaps the lucide icon between volume-2 and volume-x. - Clicking Skip (or the video ending naturally) fades the entire hero-reveal overlay to opacity: 0; pointer-events: none and hands scroll control to the page (unlock body scroll if it was locked during the intro). Stage 3 โ Cleanup: - Revoke the object URL (URL.revokeObjectURL) once playback is confirmed complete or the section is skipped, to avoid a memory leak. Guard clause: If prefers-reduced-motion: reduce is set, skip the timeline entirely โ set all elements to their final visible state immediately and do not autoplay the video (show the static poster image and go straight to "Start experience" enabled, muted, no forced playback). On touch devices, do not attempt to autoplay video with sound under any circumstance โ always mount muted, and reveal an explicit "tap to unmute" affordance instead of relying on hover. Save this if you want the same Hero animations. #webdesign #buildinpublic #claude #ai #3d - @webforge6"/> = 3 (HAVE_FUTURE_DATA) โ reflect this with the existing `.c-button--disabled` class rather than a new one. - Clicking mute toggles video.muted and swaps the lucide icon between volume-2 and volume-x. - Clicking Skip (or the video ending naturally) fades the entire hero-reveal overlay to opacity: 0; pointer-events: none and hands scroll control to the page (unlock body scroll if it was locked during the intro). Stage 3 โ Cleanup: - Revoke the object URL (URL.revokeObjectURL) once playback is confirmed complete or the section is skipped, to avoid a memory leak. Guard clause: If prefers-reduced-motion: reduce is set, skip the timeline entirely โ set all elements to their final visible state immediately and do not autoplay the video (show the static poster image and go straight to "Start experience" enabled, muted, no forced playback). On touch devices, do not attempt to autoplay video with sound under any circumstance โ always mount muted, and reveal an explicit "tap to unmute" affordance instead of relying on hover. Save this if you want the same Hero animations. #webdesign #buildinpublic #claude #ai #3d - @webforge6 - Tikwm"/> = 3 (HAVE_FUTURE_DATA) โ reflect this with the existing `.c-button--disabled` class rather than a new one. - Clicking mute toggles video.muted and swaps the lucide icon between volume-2 and volume-x. - Clicking Skip (or the video ending naturally) fades the entire hero-reveal overlay to opacity: 0; pointer-events: none and hands scroll control to the page (unlock body scroll if it was locked during the intro). Stage 3 โ Cleanup: - Revoke the object URL (URL.revokeObjectURL) once playback is confirmed complete or the section is skipped, to avoid a memory leak. Guard clause: If prefers-reduced-motion: reduce is set, skip the timeline entirely โ set all elements to their final visible state immediately and do not autoplay the video (show the static poster image and go straight to "Start experience" enabled, muted, no forced playback). On touch devices, do not attempt to autoplay video with sound under any circumstance โ always mount muted, and reveal an explicit "tap to unmute" affordance instead of relying on hover. Save this if you want the same Hero animations. #webdesign #buildinpublic #claude #ai #3d - @webforge6"/>