Add splash intro, nuclear games + consulting, Cherenkov hero

- Splash: full-viewport animated SUCH logo cover with four corner nav
  buttons; reveals the site once "entered" (scroll-through or Explore) and
  does not resurrect on scroll-up. Original hero restored beneath it
  (title-anchored monitor pulse + Cherenkov-blue background).
- Logo: traveling Cherenkov glow ring + gentle letter breath (SVG/Framer,
  reduced-motion safe); beveled glass corner buttons.
- Services: new "Nuclear & Radiation Modeling" section + "Consulting"
  umbrella (payments, crypto, nuclear), MCNP Google Scholar link, and a
  not-a-licensed-PE clarification.
- About/founder bio: LLNL credibility + accessibility, art101.io link.
- Products: add Barns & Neutrons, Alpha Doc, Decay Theory (detail pages,
  OG cards, SVG icons); client-side sortable grid with coming-soon at the
  bottom. New Neroswap + Custom Websites icons (de-duplicated).
- SEO: game pages added to sitemap.
- Copy: dial back em-dashes to colons/commas/parens on home + services.
This commit is contained in:
jwinterm
2026-06-05 22:40:14 -04:00
parent 71dec78abe
commit ed07bb5681
26 changed files with 1234 additions and 140 deletions
@@ -0,0 +1,29 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128">
<defs>
<filter id="ad-glow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="2" result="b"/>
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<rect width="128" height="128" rx="22" fill="#171c26"/>
<!-- atom orbits in the four radiation colors -->
<g fill="none" stroke-width="2.5" transform="translate(64 52)">
<ellipse rx="40" ry="15" stroke="#ff6a00" opacity="0.85"/>
<ellipse rx="40" ry="15" stroke="#00a8ff" opacity="0.85" transform="rotate(60)"/>
<ellipse rx="40" ry="15" stroke="#9b30ff" opacity="0.85" transform="rotate(120)"/>
</g>
<!-- electrons -->
<circle cx="104" cy="52" r="4" fill="#ff6a00"/>
<circle cx="40" cy="24" r="4" fill="#00a8ff"/>
<circle cx="40" cy="80" r="4" fill="#9b30ff"/>
<circle cx="92" cy="78" r="4.5" fill="#39ff14"/>
<!-- nucleus -->
<circle cx="64" cy="52" r="9" fill="#eafff3" filter="url(#ad-glow)"/>
<!-- mortarboard (graduation cap) -->
<g transform="translate(64 100)">
<polygon points="0,-9 30,2 0,13 -30,2" fill="#d7e0ea"/>
<path d="M-17 6 v10 q17 9 34 0 V6" fill="#aeb9c7"/>
<line x1="30" y1="2" x2="30" y2="16" stroke="#39ff14" stroke-width="2"/>
<circle cx="30" cy="17" r="2.5" fill="#39ff14"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@@ -0,0 +1,27 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128">
<defs>
<filter id="bn-glow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="2.2" result="b"/>
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<rect width="128" height="128" rx="22" fill="#18202e"/>
<!-- faint nuclide-chart grid -->
<g stroke="#e6bf3f" stroke-width="1" opacity="0.12" fill="none">
<path d="M20 44h88M20 64h88M20 84h88M44 24v80M64 24v80M84 24v80"/>
</g>
<!-- amber orbit -->
<ellipse cx="60" cy="66" rx="40" ry="15" fill="none" stroke="#e6bf3f" stroke-width="2.5" opacity="0.55" transform="rotate(-18 60 66)"/>
<!-- nucleus: red protons + cream neutrons -->
<g>
<circle cx="54" cy="62" r="8" fill="#e0793c"/>
<circle cx="66" cy="60" r="8" fill="#ece3cf"/>
<circle cx="60" cy="70" r="8" fill="#e0793c"/>
<circle cx="70" cy="70" r="8" fill="#ece3cf"/>
<circle cx="58" cy="56" r="7" fill="#ece3cf"/>
<circle cx="68" cy="64" r="7" fill="#e0793c"/>
</g>
<!-- incoming neutron (radioactive green) with streak -->
<line x1="120" y1="36" x2="92" y2="52" stroke="#93d84f" stroke-width="2.5" stroke-linecap="round" opacity="0.6"/>
<circle cx="90" cy="53" r="7" fill="#93d84f" filter="url(#bn-glow)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128">
<rect width="128" height="128" rx="22" fill="#1e1b2e"/>
<rect x="22" y="30" width="84" height="68" rx="9" fill="none" stroke="#a78bfa" stroke-width="4"/>
<line x1="22" y1="48" x2="106" y2="48" stroke="#a78bfa" stroke-width="4"/>
<circle cx="33" cy="39" r="2.6" fill="#a78bfa"/>
<circle cx="42" cy="39" r="2.6" fill="#a78bfa"/>
<circle cx="51" cy="39" r="2.6" fill="#a78bfa"/>
<path d="M54 62 L40 74 L54 86" fill="none" stroke="#c4b5fd" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M74 62 L88 74 L74 86" fill="none" stroke="#c4b5fd" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 743 B

@@ -0,0 +1,37 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128">
<defs>
<linearGradient id="dt-cat" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#00e5ff"/>
<stop offset="1" stop-color="#1565c0"/>
</linearGradient>
<filter id="dt-glow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="2.4" result="b"/>
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<rect width="128" height="128" rx="22" fill="#0d1b1f"/>
<!-- quantum cat -->
<g filter="url(#dt-glow)">
<!-- ears -->
<polygon points="34,40 44,16 56,38" fill="url(#dt-cat)"/>
<polygon points="94,40 84,16 72,38" fill="url(#dt-cat)"/>
<!-- head -->
<circle cx="64" cy="62" r="30" fill="url(#dt-cat)"/>
</g>
<!-- eyes + nose -->
<circle cx="53" cy="58" r="4" fill="#06222b"/>
<circle cx="75" cy="58" r="4" fill="#06222b"/>
<path d="M60 70 h8 l-4 5 z" fill="#06222b"/>
<!-- whiskers -->
<g stroke="#bdf6ff" stroke-width="1.5" opacity="0.7" stroke-linecap="round">
<path d="M78 66 h16M78 71 h14M50 66 h-16M50 71 h-14"/>
</g>
<!-- decay particles drifting off (dissolving) -->
<g fill="#7df9ff">
<circle cx="96" cy="30" r="3" opacity="0.9"/>
<circle cx="106" cy="22" r="2.2" opacity="0.6"/>
<circle cx="114" cy="16" r="1.6" opacity="0.35"/>
<circle cx="90" cy="96" r="2.6" opacity="0.7"/>
<circle cx="100" cy="104" r="1.8" opacity="0.4"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128">
<rect width="128" height="128" rx="22" fill="#16a34a"/>
<g transform="scale(2)">
<path fill="#0b0b0c" d="M18 16h8v18l12-18h8v32h-8V30L26 48h-8z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 257 B