Built to match your concept shots: one deep-navy material world, starfield atmosphere, a lit crystal mascot, a recurring sparkle mark, and icons doing the labeling. Onboarding chrome is step counter + Skip only (no top bar), every onboarding CTA is the same indigo gradient, and the gauge language from the opener demo carries into the profile score. Kept from before: fixed dock, SF Pro, one loud moment per screen, and your .99 pricing.
One surface family. Navy fills at two intensities with luminous indigo borders. Emphasis = border glow, never a different material.
Starfield + radial glow on every screen. The world persists across onboarding and the app, so screens feel like rooms in one place.
Four recurring elements: the crystal, the sparkle mark, the 270° gauge, and the gradient CTA. Each appears on 2+ screens.
Indigo is the product. Gold sparkle = delight beats. Green = positive verdicts only. Nothing else gets color.
TYPE: SF Pro (system), large-title 700 once per screen. CTA gradient #5A6BFF to #7C6CFF, identical on every onboarding screen.
Trained on millions of real conversations, Aura knows what gets replies before you hit send.
Worth naming precisely, because these are the rules the build must protect:
Every surface is the same navy at two intensities. Hierarchy comes from border luminance and glow, not from swapping materials. v3's white-card-on-dark contrast was still two worlds; this is one.
The starfield and radial glow make screens feel like a place, not a panel. Because the atmosphere persists from onboarding into the app, moving through the product feels continuous.
The crystal is lit, faceted, translucent, and standing on a glow platform. Light implies craft. Flat shapes read as clip art; lit objects read as a team with a 3D artist.
The sparkle mark appears in the wordmark, the PRO pill, feature bullets, the suggested-reply label, the CTA, and the tab bar. Repetition with variation is what cohesion literally is.
Tone tiles, feature lists, and improvement rows all lead with a small icon, so almost no caps labels are needed. The one big number per screen keeps its authority.
"Needs work." "Strong start." A verdict under a number turns data into coaching, which is the product's whole personality, and it recurs identically in onboarding and the app.
Same Reanimated + moti stack as before, plus shared-element continuity between onboarding steps:
Step 1's crystal shrinks and morphs into the sparkle wordmark as onboarding completes (scale + position transition, 450ms). The gauge born on step 2 is the same component that renders the profile score, so the user has already learned it.
No top progress bar. The step counter increments with a vertical digit roll (01 to 02, 200ms), screens push with a 250ms slide + fade, and the CTA (identical gradient throughout) never moves or changes color.
Stars twinkle on a 6s loop, the crystal's platform glow breathes with its float, and hot cards' borders pulse subtly. All ambient motion is opacity-only and respects reduced-motion.
270° gauge sweeps to the true value fraction over 1.5s with the count-up in sync; the verdict label fades in only after the number lands, so the opinion is a punchline.
Paywall selection ring and tone-tile highlight slide between positions (layout animation) instead of toggling, and the paywall CTA text crossfades to quote the selected plan.
Unchanged contract: fixed-height CTA dock on every screen, skeleton shimmer instead of spinners, results always slide up from below.