

#07090b base so the one signal-green accent means something when it appears.preserveAspectRatio rather than recalculating layout at runtime. Click any node and a dossier opens entity name, chain, full address, risk score, hop count, last-seen block, weighted signals. The edges draw themselves in with GSAP's MotionPath plugin, value pulses travel along the paths, and a risk key sits pinned to the corner so the colour vocabulary established in the first five seconds carries through every other page.gsap.context() so tweens and ScrollTriggers revert on unmount instead of leaking across navigations and firing at detached nodes. Elements render visible by default and are hidden only by script, so a failed hydration degrades to a readable page rather than a blank one. A <noscript> block force-reveals everything. React Compiler is enabled, fonts are self-hosted through next/font with display: swap, and every animated property is transform or opacity.sitemap.ts, robots.ts
Posted Aug 6, 2026
Designed and developed a six-page website with interactive features for a blockchain security firm.
1
0
Rolled