diff --git a/apps/marketing/public/assets/inbox-film-poster.jpg b/apps/marketing/public/assets/inbox-film-poster.jpg new file mode 100644 index 0000000000..34620a85c1 Binary files /dev/null and b/apps/marketing/public/assets/inbox-film-poster.jpg differ diff --git a/apps/marketing/public/assets/inbox-film.mp4 b/apps/marketing/public/assets/inbox-film.mp4 new file mode 100644 index 0000000000..f90a1e721b Binary files /dev/null and b/apps/marketing/public/assets/inbox-film.mp4 differ diff --git a/apps/marketing/src/pages/[inbox].astro b/apps/marketing/src/pages/[inbox].astro index adcdc32fcb..6c9a4de87b 100644 --- a/apps/marketing/src/pages/[inbox].astro +++ b/apps/marketing/src/pages/[inbox].astro @@ -82,6 +82,30 @@ const steps = [ + +
+ + +
+ { + filmVideo.play().catch(() => {}); + }); + filmVideo.addEventListener('play', () => { + filmPlay.hidden = true; + filmVideo.controls = true; + }); + } + // Lightbox: the 2x render of the mode on screen. const lb = document.querySelector('[data-lightbox-modal]'); const img = lb?.querySelector('.ib-lightbox-img'); @@ -462,6 +503,79 @@ const steps = [ margin-top: 3.5rem; } + /* ── The film (InboxShot's large frame, around a 16:9 player) ── */ + .ib-film { + position: relative; + margin: 3.5rem 0 0; + border-radius: 12px; + overflow: hidden; + border: 1px solid var(--border); + background: #000; + box-shadow: + 0 30px 80px -20px color-mix(in oklab, #000 45%, transparent), + 0 1px 2px color-mix(in oklab, var(--foreground) 6%, transparent); + } + + :global(.light) .ib-film { + box-shadow: 0 30px 70px -24px color-mix(in oklab, var(--foreground) 22%, transparent); + } + + .ib-film-video { + display: block; + width: 100%; + height: auto; + aspect-ratio: 16 / 9; + } + + /* The whole poster is the button; the dot is code-review.astro's + cr-demo-play, larger. */ + .ib-film-play { + position: absolute; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + padding: 0; + border: none; + background: none; + cursor: pointer; + } + + .ib-film-play[hidden] { display: none; } + + .ib-film-play-dot { + width: 76px; + height: 76px; + border-radius: 999px; + background: color-mix(in oklab, var(--primary) 92%, transparent); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45); + transition: background-color 0.15s; + } + + .ib-film-play-dot svg { + width: 34px; + height: 34px; + margin-left: 4px; + } + + .ib-film-play:hover .ib-film-play-dot { background: var(--primary); } + + .ib-film-play:focus-visible { + outline: 2px solid var(--primary); + outline-offset: -4px; + border-radius: 12px; + } + + @media (max-width: 639px) { + .ib-film { margin-top: 2.5rem; } + .ib-film-play-dot { width: 56px; height: 56px; } + .ib-film-play-dot svg { width: 26px; height: 26px; margin-left: 3px; } + } + /* ── Chapter markers (cr-arc) ── */ .ib-arc { display: flex;