+ {/* Product name — letter by letter spring */}
+
+ {nameChars.map((char, i) => {
+ const charDelay = nameDelay + i * 1.0;
+ const charSpring = spring({
+ frame: frame - charDelay,
+ fps,
+ config: { damping: 14, stiffness: 160 },
+ });
+
+ // "Air" = first 3 chars get accent color
+ const isAccent = i < 3;
+
+ return (
+
+ {char}
+
+ );
+ })}
+
+
+ {/* Price — block element, clearly on its own line */}
+
+
+ {price}
+
+ {/* Shimmer across price text */}
+ {frame >= shimmerDelay && frame <= shimmerDelay + fps * 1.0 && (
+
+ )}
+
+
+ {/* Tagline */}
+
+ {tagline}
+
+
+ {/* Closer */}
+
+ {closer}
+
+
+