How it behaves
Exactly what the prompt builds — every timing and easing is specified, so the result matches the demo.
Curtain (first load only)
- Two black panels (each 50.2% wide, so there's never a seam) cover the screen with a subtle marble-like texture. Center: the logo mark (86px) and a 168px hairline with a red (#D71212) fill.
- The red fill creeps toward 90% (power2.out) while the page loads, then completes (0.35s) once the window has loaded, fonts are ready and the hero image has loaded — but never earlier than 1.1s and never later than 4s.
- The logo and line fade out (0.4s), then the halves slide apart (xPercent ±100, 1.25s, power3.inOut). Page scroll is locked until then.
- A hard failsafe removes the curtain after 9s no matter what.
Hero entrance (starts as the curtain parts)
- Headline left ("Cast by Hand") and right ("Kept for Life") morph in from blur: each frame the text's blur shrinks (max 18px) and its opacity rises on an ease-in curve (fraction^1.15) over 1s.
- The arched black-and-white photo rises from 100% below to its place over 2.2s (power2.out). The hairline arch behind it fades in and grows from 92% height starting at 0.3s.
- Intro paragraph, the "See the collection" link and the bottom strapline/address each blur in (blur 14px → 0, y 18px → 0, 0.8s) at 0.55s, 0.7s and 0.8s (+0.08s stagger).
Scroll
- Over the hero's height, scrubbed to scroll: the photo sinks 170px, the headline block rises 78px, the bottom line rises 44px. Reduced motion: no curtain, no morph, no scrub — everything is visible at once.