capad.fyi · testimonials option B, take two

A new card opens. The old one is left alone.

Last attempt was wrong in one specific way: I made the project card become the quote panel — body faded out, panel rose through it, same box, same height. That is a state change on one card, not a card opening.

This is a separate element. The project card does not change at all. A second glass card opens on top of it: it rises on a spring, its radius morphs into an asymmetric blob, the quotes stagger in, the cursor spotlight tracks the pointer across it, and droplets gather and detach beneath its lower edge — never across the face.

separate element, not a restyle spring: cubic-bezier(.34,1.4,.64,1) your --mx/--my spotlight droplets below, not across

rest — pointer away

searchts shipped

A keyless web unlocker that reads, searches, and transcribes what a naive fetch cannot, from bot-walled pages to whole AI-chat share conversations.

0API keys
3unlock tiers
8AI-chat providers
hover

open — pointer on it, card pinned

searchts shipped

A keyless web unlocker that reads, searches, and transcribes what a naive fetch cannot, from bot-walled pages to whole AI-chat share conversations.

0API keys
3unlock tiers
8AI-chat providers
hover

what people said about this

“from your own IP” is the whole insight. a proxy pool fights the bot-wall; your own IP is already through it, same reason a human’s browser doesn’t trip cloudflare. an agent acting from where you already are doesn’t need to sneak in. nice build.
Phi Browser · on searchts · @phibrowser
fetch-time + final_url turns read output into something a reviewer can cite later. Tier/status is useful; redirect + timestamp makes it durable.
Dang_nh · on searchts · @hikariraina

Try the left one. Move the pointer across the open card — the
highlight follows it and the card tilts a few degrees toward you.

1

What makes it liquid rather than animated

Four things, and none of them is a filter.

The easecubic-bezier(.34,1.4,.64,1) — it overshoots past the target and settles back. Your .card-lift uses cubic-bezier(.16,1,.3,1), which arrives and stops. Overshoot is what reads as liquid; arrival-and-stop reads as a machine.
The silhouetteThe open card's four corners go unequal — 48px 28px 44px 32px. A symmetric rounded rectangle is a UI panel; an asymmetric one is closer to a droplet. I tried percentage radii for a more organic wobble and reverted it: 30% of a 470px card is a 141px radius, which curves in over the text and the card clips its own quotes. Asymmetric, in px, and small enough to stay clear of the content.
Squash and stretchThe single biggest liquid cue, and the reason this reads wetter than the last attempt. On the way in the card compresses to scale(1.07,.93), over-inflates to .985,1.015, wobbles, and settles at 1.035. A card that only translates reads as a panel on a rail; a card that deforms on impact reads as liquid landing. This is why a still screenshot undersells it — the whole effect is in the motion.
The dropletsBelow the lower edge, staggered 0–150ms. They swell against the edge first — squashed flat to scale(1.3,.66) on contact under surface tension, then rounding off and pulling away. A droplet that simply scales up looks like a circle appearing rather than liquid clinging to something. They never cross the face.
No SVG filter, on purpose. A true goo merge — feGaussianBlur + the alpha-contrast feColorMatrix you already use for drip-goo — would weld the card and its droplets into one silhouette. I left it out because a filter on the wrapper forces the card's own backdrop-filter through a filter pass, and you have already measured that stacked backdrop-filter is the one super-linear case on the page. Say the word and I will add it to this single card, priced, rather than to all four.
2

The cursor feel, and who gets it

You asked for our cursor feel. This is literally it, not a lookalike.

Same contractThe open card's ::after is your spotlight, reading --mx / --my exactly as .glass::after does at globals.css:177. One pointermove writes two custom properties; there is no second spotlight system.
Plus a tiltThe same event drives a perspective(1000px) rotation of at most 3° toward the pointer. That is the liquid-lens gesture reduced to something a card can afford.
Keyboard:focus-within on the slot opens it identically, so it is reachable without a pointer. The project card is focusable for that reason.
Touch and coarse pointersThere is no hover on a phone, so a hover-only card is a card nobody sees. On (hover: none) this should become a tap to expand in flow — pushing the grid down — not an overlay. That is a different layout and I have not drawn it yet.
Motion safetyUnder prefers-reduced-motion the rise becomes a plain opacity fade, the radius does not morph, the tilt is off and the droplets do not scale. The content is identical either way.