card-hover-systemCard hover: lift + zoom + scrim + arrow
Four effects fire on one hover: the card lifts to scale 1.02 (150ms), the photo zooms to 1.05 and a black/10 scrim fades in (300ms), and the arrow darkens on direct hover (300ms). The card carries will-change-transform so the lift animates an existing compositor layer - putting it on the imgs blurs transform-zoomed photos.
Photos that carry an inline transform for art direction override the class hover-zoom (inline style wins for transform).
category-cross-fadeCategory tab cross-fade
Clicking a filter pill fades the whole product row to opacity 0 (300ms), swaps the content while invisible, and fades back in (300ms). The setTimeout matches the CSS duration exactly.
MHT PROGRAM
Hormones
smooth-scroll-snapSmooth scroll-snap track
Arrows and thumbnail jumps scroll the track with browser-native smooth scrolling to the card’s own offset; snap-x snap-mandatory keeps free swipes landing cleanly on a card. No author duration - the browser owns the glide.
Estradiol
Semaglutide
Tretinoin
Sermorelin
progress-fillRail / overlay progress fill
The teal fill animates width and margin-left together (300ms) as the active card index moves, so the bar both grows and slides to mirror the visible window.
thumbnail-liftThumbnail selection lift
The active thumb scales to 110 with full opacity, a teal ring, and a shadow; inactive thumbs sit dimmed at opacity 40 and brighten to 70 on hover. All of it on one transition-all at 200ms.
swipe-hintSwipe-hint wave + dot breathe
Three chevrons pulse opacity 0.1 → 0.55 in a staggered wave while the dot breathes between opacity 0.3/0.65 and scale 1/1.3 - both on a 1.5s ease-in-out infinite loop.
The only motion with a prefers-reduced-motion guard: both freeze at opacity 0.4 when the user prefers reduced motion.
cta-hover-colorsCTA + pill hover colors
Color-only hovers at the Tailwind default 150ms: the filled CTA deepens its teal, the outline CTA solidifies from white/40 to white, and filter pills tint. No movement anywhere.
global-smooth-scrollGlobal smooth scrolling
scroll-behavior: smooth on <html> makes every anchor navigation and programmatic scroll glide instead of jump. Browser-native - no author duration or easing.
The whole document scrolls smoothly - this link glides instead of jumping.