diff --git a/README.md b/README.md index be4c7ab..52c5573 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,10 @@ bun run start Screenshots live in `public/screenshots/`. The long-form homepage uses precomposited, transparent iPhone product-bezel assets in -`public/screenshots/pitch/`; supporting pages use the lightweight CSS frame. +`public/screenshots/pitch-glass-2026-08-20/`; supporting pages use versioned raw +captures from `public/screenshots/product-glass-2026-08-20/` in the lightweight +CSS frame. Versioned paths keep newly captured UI from being hidden by stale +browser or image-optimizer caches. Public pages label product imagery as synthetic demo data and beta UI. ### Capturing raw screenshots for the site @@ -73,5 +76,5 @@ captures that already include device chrome. Homepage product images are composited at the bezel source size of 1350 × 2760 with transparent backgrounds and rendered responsively through `src/components/product-device.tsx`. The homepage uses CSS view timelines for -scroll-scrubbed device and chapter motion, with a static fallback and a -reduced-motion override. +scroll-scrubbed device and chapter motion on desktop and mobile, with a static +fallback and a reduced-motion override. diff --git a/public/screenshots/pitch-glass-2026-08-20/ask-black-dark.webp b/public/screenshots/pitch-glass-2026-08-20/ask-black-dark.webp new file mode 100644 index 0000000..c6aa6d5 Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/ask-black-dark.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/ask-black.webp b/public/screenshots/pitch-glass-2026-08-20/ask-black.webp new file mode 100644 index 0000000..698c406 Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/ask-black.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/home-black-dark.webp b/public/screenshots/pitch-glass-2026-08-20/home-black-dark.webp new file mode 100644 index 0000000..7208a2d Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/home-black-dark.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/home-black.webp b/public/screenshots/pitch-glass-2026-08-20/home-black.webp new file mode 100644 index 0000000..66d18f5 Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/home-black.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/know-me-natural-dark.webp b/public/screenshots/pitch-glass-2026-08-20/know-me-natural-dark.webp new file mode 100644 index 0000000..1d14290 Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/know-me-natural-dark.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/know-me-natural.webp b/public/screenshots/pitch-glass-2026-08-20/know-me-natural.webp new file mode 100644 index 0000000..a1fd3f5 Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/know-me-natural.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/medication-detail-natural-dark.webp b/public/screenshots/pitch-glass-2026-08-20/medication-detail-natural-dark.webp new file mode 100644 index 0000000..e984230 Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/medication-detail-natural-dark.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/medication-detail-natural.webp b/public/screenshots/pitch-glass-2026-08-20/medication-detail-natural.webp new file mode 100644 index 0000000..2a2729e Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/medication-detail-natural.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/medications-black-dark.webp b/public/screenshots/pitch-glass-2026-08-20/medications-black-dark.webp new file mode 100644 index 0000000..f47c0d0 Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/medications-black-dark.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/medications-black.webp b/public/screenshots/pitch-glass-2026-08-20/medications-black.webp new file mode 100644 index 0000000..c7c48ba Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/medications-black.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/summary-natural-dark.webp b/public/screenshots/pitch-glass-2026-08-20/summary-natural-dark.webp new file mode 100644 index 0000000..ce71782 Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/summary-natural-dark.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/summary-natural.webp b/public/screenshots/pitch-glass-2026-08-20/summary-natural.webp new file mode 100644 index 0000000..0b49d3f Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/summary-natural.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/transcript-black-dark.webp b/public/screenshots/pitch-glass-2026-08-20/transcript-black-dark.webp new file mode 100644 index 0000000..764747c Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/transcript-black-dark.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/transcript-black.webp b/public/screenshots/pitch-glass-2026-08-20/transcript-black.webp new file mode 100644 index 0000000..0c4bb48 Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/transcript-black.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/visits-natural-dark.webp b/public/screenshots/pitch-glass-2026-08-20/visits-natural-dark.webp new file mode 100644 index 0000000..06d8d0d Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/visits-natural-dark.webp differ diff --git a/public/screenshots/pitch-glass-2026-08-20/visits-natural.webp b/public/screenshots/pitch-glass-2026-08-20/visits-natural.webp new file mode 100644 index 0000000..225fff6 Binary files /dev/null and b/public/screenshots/pitch-glass-2026-08-20/visits-natural.webp differ diff --git a/public/screenshots/product-glass-2026-08-20/ask-dark.png b/public/screenshots/product-glass-2026-08-20/ask-dark.png new file mode 100644 index 0000000..32cbf3c Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/ask-dark.png differ diff --git a/public/screenshots/product-glass-2026-08-20/ask-light.png b/public/screenshots/product-glass-2026-08-20/ask-light.png new file mode 100644 index 0000000..a503c7a Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/ask-light.png differ diff --git a/public/screenshots/product-glass-2026-08-20/home-dark.png b/public/screenshots/product-glass-2026-08-20/home-dark.png new file mode 100644 index 0000000..3b4a6d5 Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/home-dark.png differ diff --git a/public/screenshots/product-glass-2026-08-20/home-light.png b/public/screenshots/product-glass-2026-08-20/home-light.png new file mode 100644 index 0000000..e45fec5 Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/home-light.png differ diff --git a/public/screenshots/product-glass-2026-08-20/know-me-dark.png b/public/screenshots/product-glass-2026-08-20/know-me-dark.png new file mode 100644 index 0000000..12f6de1 Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/know-me-dark.png differ diff --git a/public/screenshots/product-glass-2026-08-20/know-me-light.png b/public/screenshots/product-glass-2026-08-20/know-me-light.png new file mode 100644 index 0000000..014030b Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/know-me-light.png differ diff --git a/public/screenshots/product-glass-2026-08-20/medication-detail-dark.png b/public/screenshots/product-glass-2026-08-20/medication-detail-dark.png new file mode 100644 index 0000000..ddb8686 Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/medication-detail-dark.png differ diff --git a/public/screenshots/product-glass-2026-08-20/medication-detail-light.png b/public/screenshots/product-glass-2026-08-20/medication-detail-light.png new file mode 100644 index 0000000..e199d8d Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/medication-detail-light.png differ diff --git a/public/screenshots/product-glass-2026-08-20/medications-light.png b/public/screenshots/product-glass-2026-08-20/medications-light.png new file mode 100644 index 0000000..d994340 Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/medications-light.png differ diff --git a/public/screenshots/product-glass-2026-08-20/summary-dark.png b/public/screenshots/product-glass-2026-08-20/summary-dark.png new file mode 100644 index 0000000..3647c19 Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/summary-dark.png differ diff --git a/public/screenshots/product-glass-2026-08-20/summary-light.png b/public/screenshots/product-glass-2026-08-20/summary-light.png new file mode 100644 index 0000000..301f69b Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/summary-light.png differ diff --git a/public/screenshots/product-glass-2026-08-20/visits-dark.png b/public/screenshots/product-glass-2026-08-20/visits-dark.png new file mode 100644 index 0000000..4ab8edb Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/visits-dark.png differ diff --git a/public/screenshots/product-glass-2026-08-20/visits-light.png b/public/screenshots/product-glass-2026-08-20/visits-light.png new file mode 100644 index 0000000..fa34f56 Binary files /dev/null and b/public/screenshots/product-glass-2026-08-20/visits-light.png differ diff --git a/src/app/(marketing)/executive-summary/page.tsx b/src/app/(marketing)/executive-summary/page.tsx index 952395f..a26d2a9 100644 --- a/src/app/(marketing)/executive-summary/page.tsx +++ b/src/app/(marketing)/executive-summary/page.tsx @@ -49,7 +49,7 @@ const differentiators = [ }, { title: "Private by architecture", - body: "AI runs on-device: no cloud processing, no health-data upload, no tracking, no account. Others say \"encrypted\" while their store disclosures admit cloud collection.", + body: 'AI runs on-device: no cloud processing, no health-data upload, no tracking, no account. Others say "encrypted" while their store disclosures admit cloud collection.', }, { title: "Facts-first, not a guess", @@ -147,21 +147,22 @@ export default function ExecutiveSummaryPage() {
Executive Summary · June 2026
-

+

Medscribe

-

+

{TAGLINE}

-

+

{SNAPSHOT}

The patient's context does not travel with them. -
+

{PROBLEM}

-

{PROBLEM_BROADER}

+

{PROBLEM_BROADER}

@@ -205,7 +206,7 @@ export default function ExecutiveSummaryPage() {

Everyone owns a slice. We own the whole job.

-

+

{DIFFERENTIATION}

@@ -222,8 +223,8 @@ export default function ExecutiveSummaryPage() {

Medscribe connects the daily loop to the emergency handoff: one - private record that stays current through normal use and is ready - when the system does not know the patient. + private record that stays current through normal use and is + ready when the system does not know the patient.

@@ -235,7 +236,7 @@ export default function ExecutiveSummaryPage() {

Easy to claim. Hard to copy.

-

+

{MOAT}

@@ -279,7 +280,7 @@ export default function ExecutiveSummaryPage() {

An ongoing touchstone, not another portal.

-

+

{FOR_HEALTH_SYSTEMS}

@@ -295,14 +296,14 @@ export default function ExecutiveSummaryPage() { {/* Beta */} -
-

+

+

{BETA_SUMMARY} If you'd like to try it, reach out.

-

+

Sean O'Connor

@@ -315,16 +316,16 @@ export default function ExecutiveSummaryPage() { {/* Header */}
-

+

Executive Summary · June 2026

- -

+ +

Medscribe

-

+

{TAGLINE}

@@ -334,7 +335,7 @@ export default function ExecutiveSummaryPage() {

Medscribe home screen -

+

The Problem

@@ -358,7 +359,7 @@ export default function ExecutiveSummaryPage() { {/* Who It's For */}

-

+

Who It's For

@@ -368,7 +369,7 @@ export default function ExecutiveSummaryPage() { {/* Why This Is Different */}

-

+

Why This Is Different

@@ -377,7 +378,7 @@ export default function ExecutiveSummaryPage() { key={item.title} className="text-[11pt] leading-[1.2] text-slate-700" > - + {item.title}. {" "} {item.body} @@ -388,7 +389,7 @@ export default function ExecutiveSummaryPage() { {/* Under The Hood */}
-

+

Under The Hood

@@ -397,7 +398,7 @@ export default function ExecutiveSummaryPage() { key={item.title} className="text-[11pt] leading-[1.2] text-slate-700" > - + {item.title}. {" "} {item.body} @@ -408,7 +409,7 @@ export default function ExecutiveSummaryPage() { {/* For Health Systems */}
-

+

For Health Systems

@@ -417,7 +418,7 @@ export default function ExecutiveSummaryPage() { key={item.title} className="text-[11pt] leading-[1.2] text-slate-700" > - + {item.title}. {" "} {item.body} diff --git a/src/app/(marketing)/how-it-works/page.tsx b/src/app/(marketing)/how-it-works/page.tsx index 3ada5d5..a73dc38 100644 --- a/src/app/(marketing)/how-it-works/page.tsx +++ b/src/app/(marketing)/how-it-works/page.tsx @@ -137,7 +137,8 @@ export default function HowItWorksPage() {
@@ -150,7 +151,8 @@ export default function HowItWorksPage() {
@@ -197,7 +199,8 @@ export default function HowItWorksPage() {
diff --git a/src/app/(marketing)/page.tsx b/src/app/(marketing)/page.tsx index 048d29a..61947da 100644 --- a/src/app/(marketing)/page.tsx +++ b/src/app/(marketing)/page.tsx @@ -28,8 +28,8 @@ const visitMoments = [ eyebrow: "Visits stay findable", title: "The visit has a place to land.", body: "Keep the recording, transcript, and reviewed summary together instead of reconstructing the appointment from memory.", - image: "/screenshots/pitch/visits-natural.webp", - darkImage: "/screenshots/pitch/visits-natural-dark.webp", + image: "/screenshots/pitch-glass-2026-08-20/visits-natural.webp", + darkImage: "/screenshots/pitch-glass-2026-08-20/visits-natural-dark.webp", alt: "Medscribe Visits screen in a natural titanium iPhone product bezel", }, { @@ -37,8 +37,8 @@ const visitMoments = [ eyebrow: "Words stay checkable", title: "Go back to what was actually said.", body: "Search the local transcript and compare it with the generated summary before anything becomes part of the record you rely on.", - image: "/screenshots/pitch/transcript-black.webp", - darkImage: "/screenshots/pitch/transcript-black-dark.webp", + image: "/screenshots/pitch-glass-2026-08-20/transcript-black.webp", + darkImage: "/screenshots/pitch-glass-2026-08-20/transcript-black-dark.webp", alt: "Medscribe visit transcript in a black titanium iPhone product bezel", }, { @@ -46,8 +46,8 @@ const visitMoments = [ eyebrow: "The next step stays visible", title: "Review the useful part. Keep the uncertainty.", body: "Medications, follow-ups, diagnoses, and instructions are prepared on-device. Suggestions remain suggestions until a person checks them.", - image: "/screenshots/pitch/summary-natural.webp", - darkImage: "/screenshots/pitch/summary-natural-dark.webp", + image: "/screenshots/pitch-glass-2026-08-20/summary-natural.webp", + darkImage: "/screenshots/pitch-glass-2026-08-20/summary-natural-dark.webp", alt: "Medscribe appointment summary in a natural titanium iPhone product bezel", }, ] as const; @@ -128,8 +128,8 @@ export default function HomePage() {
Medscribe medications screen

Who it helps

-

Every capability pays off twice

+

+ Every capability pays off twice +

The features that make Medscribe genuinely useful to the patient are - the same ones that move the numbers CVS is measured on. Cross-provider - by design; one central pharmacy in practice. + the same ones that move the numbers CVS is measured on. + Cross-provider by design; one central pharmacy in practice.

@@ -287,7 +289,8 @@ export function CvsPrintSummary() {

Live in beta on iOS and Android today. The core patient experience - ships now; the business layer is what a partnership builds together. + ships now; the business layer is what a partnership builds + together.

diff --git a/src/components/feature-showcase.tsx b/src/components/feature-showcase.tsx index 8d3cb0a..0a1329d 100644 --- a/src/components/feature-showcase.tsx +++ b/src/components/feature-showcase.tsx @@ -26,7 +26,8 @@ const features = [ "The person reviews generated information", "Structured visit-to-record change review is still roadmap", ], - image: "/screenshots/visit-detail.png", + image: "/screenshots/product-glass-2026-08-20/visits-light.png", + darkImage: "/screenshots/product-glass-2026-08-20/visits-dark.png", alt: "Synthetic Medscribe beta visit detail showing a visit summary and follow-up information", }, { @@ -41,7 +42,9 @@ const features = [ "Bundled facts and known pairs use named reference datasets", "Coverage is intentionally bounded, not a complete interaction check", ], - image: "/screenshots/medication-detail.png", + image: "/screenshots/product-glass-2026-08-20/medication-detail-light.png", + darkImage: + "/screenshots/product-glass-2026-08-20/medication-detail-dark.png", alt: "Synthetic Medscribe beta medication detail with schedule and medication information", }, { @@ -56,7 +59,8 @@ const features = [ "The local model helps with conversational phrasing", "High-risk or unsupported questions defer to a professional", ], - image: "/screenshots/chat-response.png", + image: "/screenshots/product-glass-2026-08-20/ask-light.png", + darkImage: "/screenshots/product-glass-2026-08-20/ask-dark.png", alt: "Synthetic Medscribe beta answer with medication context and a safety boundary", }, { @@ -71,7 +75,8 @@ const features = [ "The person can show or share the snapshot they reviewed", "It complements—not replaces—clinical verification", ], - image: "/screenshots/emergency-record.png", + image: "/screenshots/product-glass-2026-08-20/know-me-light.png", + darkImage: "/screenshots/product-glass-2026-08-20/know-me-dark.png", alt: "Synthetic Medscribe beta Know Me handoff with active medications and review state", }, ] as const; @@ -181,7 +186,12 @@ export function FeatureShowcase() {
- +

Synthetic demo data · beta interface

diff --git a/src/components/northwell-print-summary.tsx b/src/components/northwell-print-summary.tsx index f70e431..91bfdd2 100644 --- a/src/components/northwell-print-summary.tsx +++ b/src/components/northwell-print-summary.tsx @@ -127,7 +127,7 @@ export function NorthwellPrintSummary() {
Medscribe home screen
- {alt} + + {darkProps ? ( + + ) : null} + {alt} +
); diff --git a/src/components/product-device.tsx b/src/components/product-device.tsx index 36f0ac7..bac7a4c 100644 --- a/src/components/product-device.tsx +++ b/src/components/product-device.tsx @@ -13,8 +13,8 @@ type ProductDeviceProps = { /** * A precomposited product capture using the licensed device bezels in - * `public/screenshots/pitch`. Keeping the frame in the source image preserves - * the bezel details without adding layout or client-side work. + * `public/screenshots/pitch-glass-2026-08-20`. Keeping the frame in the source + * image preserves the bezel details without adding layout or client-side work. */ export function ProductDevice({ src, diff --git a/src/components/site-header.tsx b/src/components/site-header.tsx index 2da0120..eede286 100644 --- a/src/components/site-header.tsx +++ b/src/components/site-header.tsx @@ -5,6 +5,7 @@ import { MedscribeLogo } from "~/components/medscribe-logo"; import { Button } from "~/components/ui/button"; const navigation = [ + { href: "/", label: "Home" }, { href: "/how-it-works", label: "How it works" }, { href: "/privacy", label: "Privacy & evidence" }, ] as const; @@ -12,10 +13,10 @@ const navigation = [ export function SiteHeader() { return (
-
+
diff --git a/src/components/walgreens-print-summary.tsx b/src/components/walgreens-print-summary.tsx index 346c05d..4a561cc 100644 --- a/src/components/walgreens-print-summary.tsx +++ b/src/components/walgreens-print-summary.tsx @@ -162,7 +162,7 @@ export function WalgreensPrintSummary() {
Medscribe medications screen

Who it helps

-

Every capability pays off twice

+

+ Every capability pays off twice +

The features that make Medscribe genuinely useful to the patient are the same ones that move the numbers Walgreens is measured on. @@ -287,7 +289,8 @@ export function WalgreensPrintSummary() {

Live in beta on iOS and Android today. The core patient experience - ships now; the business layer is what a partnership builds together. + ships now; the business layer is what a partnership builds + together.

diff --git a/src/styles/globals.css b/src/styles/globals.css index 2befd97..5ecd2ae 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -106,8 +106,10 @@ */ .pitch-device-motion { --pitch-enter-x: 0px; + --pitch-enter-y: 7rem; --pitch-enter-rotate: 0deg; --pitch-exit-x: 0px; + --pitch-exit-y: -5rem; --pitch-exit-rotate: 0deg; backface-visibility: hidden; transform-origin: center; @@ -130,8 +132,8 @@ @keyframes pitch-device-scroll { 0% { opacity: 0.42; - transform: translate3d(var(--pitch-enter-x), 7rem, 0) scale(0.92) - rotate(var(--pitch-enter-rotate)); + transform: translate3d(var(--pitch-enter-x), var(--pitch-enter-y), 0) + scale(0.92) rotate(var(--pitch-enter-rotate)); } 38% { opacity: 1; @@ -143,8 +145,8 @@ } 100% { opacity: 0.78; - transform: translate3d(var(--pitch-exit-x), -5rem, 0) scale(0.97) - rotate(var(--pitch-exit-rotate)); + transform: translate3d(var(--pitch-exit-x), var(--pitch-exit-y), 0) + scale(0.97) rotate(var(--pitch-exit-rotate)); } } @@ -190,6 +192,24 @@ } } +/* Keep the product choreography visible on phones without crowding the copy. */ +@media (max-width: 639px) { + .pitch-device-motion { + --pitch-enter-y: 4rem; + --pitch-exit-y: -3rem; + } + + .pitch-device-drift-left { + --pitch-enter-x: -1.25rem; + --pitch-exit-x: 0.75rem; + } + + .pitch-device-drift-right { + --pitch-enter-x: 1.25rem; + --pitch-exit-x: -0.75rem; + } +} + @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto;