Recreate the look and feel of Fantasy (fantasy.co) for a new site with its own content.
Look and feel:
The site presents a cinematic, high-fidelity digital experience defined by deep contrast and fluid motion. It prioritises full-bleed video content over static imagery, creating an immersive atmosphere where the interface recedes to let the work speak. The mood is sophisticated and technical, characterised by smooth scrolling and precise animations that feel responsive yet weighty. Distinctive features include sticky pinned sections that hold media in place while text reveals itself, and a dark aesthetic that allows vibrant product colours to pop without visual clutter.
Layout:
The composition relies on a full-width, edge-to-edge grid where sections often occupy the entire viewport height. Elements are arranged with generous negative space, typically aligning text to the left or centre against large background videos or device mockups. Sticky positioning is used heavily to pin media layers while content scrolls over or beside them, creating a layered depth rather than a traditional vertical stack.
- Page length: 14832 px at a 1440 px wide viewport
- Corner radii: 8 px
- Sticky elements: 2
- Video elements: 18
Type (sizes at a 1440 px wide viewport):
Typography utilises a clean sans-serif family across all weights, keeping body copy small and unobtrusive to maintain focus on the visuals. Display text is set with tight tracking and specific leading, often animating word-by-word from a blurred or dim state into sharp white clarity.
- sans: weights 400, 500 (100 % of the text)
- Display: 42 px · sans 400 · leading 1.1 · tracking -0.02 em
- Body: 17 px · sans 400 · leading 1.4 · tracking -0.01 em
- Small: 15 px · sans 500 · leading 1 · tracking -0.011 em
- Small: 13 px · sans 400 · leading 1.4 · tracking -0.013 em
Colour:
The palette is anchored by a near-black ground and white ink, establishing a stark, gallery-like contrast for the content. Occasional use of frosted glass effects adds subtle texture, while the primary colour comes from the saturated hues within the video assets themselves.
- Ground: #000000 (near-black)
- Ink: #ffffff (white)
- Line: #000000 at 10 % (near-black)
Motion:
The page enters with a white flash that resolves into black, followed by the central logo fading in before a glowing silhouette swells behind it. This intro sequence dissolves to reveal the hero video underneath, transitioning smoothly from the brand mark to the moving image. Scrolling feels weighted and smooth, decoupled from the native browser scroll to create a continuous, gliding sensation. As the user moves down, sections pin to the screen; background videos remain fixed while text statements scrub into view, and grids of images zoom or shift perspective relative to the scroll position. Interactive elements respond with subtle ease-out transitions; collapsed header buttons expand in width to reveal labels, and navigation links fade in with a slight delay. The cursor remains native, but clickable paths and buttons shift opacity or position gently to indicate interactivity without disrupting the visual flow. Page changes are handled via a client-side route transition where a fixed black overlay fades in to cover the current view before the new page content appears beneath it.
- Intro (Intro reveal): ease-out · 240 ms · 33 ms stagger (measured from 30 fps frames, ±0.94 % fit error)
- Scroll (Scroll smoothing): Native scroll · no smoothing, 1:1 with the touch (measured from 30 fps frames, ±0.084 % fit error)
- Intro (Load): cubic-bezier(0.19, 1, 0.22, 1) · about 3.9 s (estimate)
- Scroll: Lenis smooth scroll, settles in about 1.6 s, pinned, scrubbed (estimate)
- Hover (Hover and cursor): ease-out · 650 ms (estimate)
- Page transition (Transitions): Client-side route change (estimate)
- Hover and focus (CSS): 350 ms ease-out on all
- Hover and focus (CSS): 300 ms ease-out on all, background-color, fill
- Custom curves in the CSS: cubic-bezier(0.19, 1, 0.22, 1); cubic-bezier(0.23, 1, 0.32, 1)
Libraries: ScrollTrigger, Lenis, three.js, Nuxt, GSAP (bundled only), SplitText (bundled only), ScrollSmoother (bundled only) and Motion (bundled only).
Techniques: smooth (lerped) scroll, sticky or pinned sections, background or inline video, clip-path reveals and wipes, frosted glass (backdrop-filter) and view transitions api.
The curator's notes on this site:
- Design: a full-bleed cinematic video hero (a car moving across saturated blue light) with only the logo, a "Menu" button and "Lead by Design" on top. About 20 muxed videos; the type stays small and lets the footage lead.
- Load: white flash, then black; the spaced "FANTASY" wordmark fades in centred (about 3.9 s), a pink-glowing logo-mark silhouette swells behind it and dims the letters (about 5–6.4 s), then the hero car video fades up under the header (about 8 s). The logo mark eases with cubic-bezier(0.19, 1, 0.22, 1) over 1 s.
- Scroll: Lenis (a 400 px wheel settles in about 1.6 s). Sticky full-screen chapters: the hero video pins as a client badge cycles; statements go word by word from dim and blurred to white (probably scrubbed SplitText); a dark product grid zooms around a centred line; services and cases pin over media. A white footer rises last.
- Hover and cursor: native cursor. The collapsed header button widens into "Menu" (width 0.65 s); logo and nav paths fade and shift (350 ms ease-out, 175 ms delay). Menu opens a full-screen black overlay with three large centred links, small secondary links and a featured-case card.
- Transitions: client-side (Nuxt) route change; a fixed black overlay fades over the page before the new route shows (seen at 390 going to /policy).
- Mobile: same chapters and word reveals in one column; Lenis stays on for touch; the header collapses to logo mark plus a small menu icon; videos stay autoplaying.
Constraints:
- Recreate the feel, not the site: write your own copy and use your own images, icons and logo; do not copy its code, fonts or assets.
- Where a font is not licensed for you, pick a close substitute with the same build (width, contrast, x-height) and keep the sizes, weights and tracking below.
- Animate transform and opacity (clip-path or filter only where the reference clearly does); list exact properties, never "transition: all".
- Honour prefers-reduced-motion: keep opacity and colour fades, drop movement and smooth scrolling.
- Values marked (estimate) were drafted from notes, not measured: tune them by eye against the reference.