Improve undernet readability and add faded rainbow color gradient

Brighten undernet section text (opacity bumps across 4 elements),
increase background lightness, and rework scroll color stops to
cycle through a full faded rainbow (red→orange→amber→green→blue→
violet→rose→warm). Also improve glass-card visibility and update
"birthing" → "inoculating" language for P4P movement.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-02-24 21:03:15 +00:00
parent 465320623e
commit 8999d27492
4 changed files with 18 additions and 18 deletions

View File

@ -17,8 +17,8 @@
--forest-deep: oklch(0.16 0.05 150); --forest-deep: oklch(0.16 0.05 150);
--mycelium-green: oklch(0.55 0.18 155); --mycelium-green: oklch(0.55 0.18 155);
--mycelium-glow: oklch(0.72 0.20 135); --mycelium-glow: oklch(0.72 0.20 135);
--undernet-dark: oklch(0.22 0.04 200); --undernet-dark: oklch(0.26 0.03 230);
--undernet-teal: oklch(0.50 0.14 220); --undernet-teal: oklch(0.55 0.10 225);
--emergence-gold: oklch(0.60 0.16 90); --emergence-gold: oklch(0.60 0.16 90);
--canopy-light: oklch(0.94 0.02 110); --canopy-light: oklch(0.94 0.02 110);
--mycopunk-orange: oklch(0.60 0.16 55); --mycopunk-orange: oklch(0.60 0.16 55);
@ -229,9 +229,9 @@
/* Card glass effect */ /* Card glass effect */
.glass-card { .glass-card {
background: oklch(0.5 0 0 / 0.08); background: oklch(0.5 0 0 / 0.12);
backdrop-filter: blur(8px); backdrop-filter: blur(8px);
border: 1px solid oklch(0.5 0 0 / 0.12); border: 1px solid oklch(0.5 0 0 / 0.16);
border-radius: var(--radius-lg); border-radius: var(--radius-lg);
} }

View File

@ -171,13 +171,13 @@ export function LegacySection() {
style={{ transitionDelay: "0.24s" }} style={{ transitionDelay: "0.24s" }}
> >
<h3 className="font-serif text-3xl sm:text-4xl md:text-5xl font-bold text-center"> <h3 className="font-serif text-3xl sm:text-4xl md:text-5xl font-bold text-center">
The Birth of the The Inoculation of the
<br /> <br />
Peer-for-Peer (P4P) Movement Peer-for-Peer (P4P) Movement
</h3> </h3>
<div className="space-y-4 text-base leading-relaxed opacity-80"> <div className="space-y-4 text-base leading-relaxed opacity-80">
<p> <p>
MycoStack carries this legacy forward by giving birth to a MycoStack carries this legacy forward by inoculating a
movement: <strong>Peer-for-Peer (P4P)</strong> &mdash; an movement: <strong>Peer-for-Peer (P4P)</strong> &mdash; an
evolution of P2P thinking that shifts from peers exchanging{" "} evolution of P2P thinking that shifts from peers exchanging{" "}
<em>with</em> each other to peers acting <em>for</em> each other. <em>with</em> each other to peers acting <em>for</em> each other.

View File

@ -6,14 +6,14 @@ import { useEffect } from "react"
// Color stops: [scrollPos, bg-L, bg-C, bg-H, fg-L, fg-C, fg-H, accent-L, accent-C, accent-H] // Color stops: [scrollPos, bg-L, bg-C, bg-H, fg-L, fg-C, fg-H, accent-L, accent-C, accent-H]
// 8 sections: Hero → Legacy → Compost → Mycelium → Undernet → Anastomosis → Emergence → Network Map // 8 sections: Hero → Legacy → Compost → Mycelium → Undernet → Anastomosis → Emergence → Network Map
const COLOR_STOPS: number[][] = [ const COLOR_STOPS: number[][] = [
[0.0, 0.08, 0.02, 30, 0.85, 0.03, 80, 0.45, 0.12, 60 ], // Hero: deep soil [0.0, 0.08, 0.02, 10, 0.85, 0.02, 10, 0.45, 0.08, 10 ], // Hero: warm red-brown
[0.10, 0.10, 0.03, 35, 0.84, 0.03, 80, 0.50, 0.13, 50 ], // Legacy: dark warm earth [0.10, 0.10, 0.03, 40, 0.84, 0.02, 40, 0.50, 0.10, 40 ], // Legacy: faded orange
[0.20, 0.12, 0.04, 40, 0.82, 0.04, 80, 0.55, 0.15, 45 ], // Compost: earth brown [0.20, 0.12, 0.03, 70, 0.82, 0.03, 70, 0.55, 0.10, 65 ], // Compost: faded amber
[0.35, 0.16, 0.05, 150, 0.88, 0.05, 145, 0.55, 0.18, 155], // Mycelium: forest green [0.35, 0.16, 0.04, 145, 0.88, 0.03, 145, 0.55, 0.12, 150], // Mycelium: faded green
[0.48, 0.22, 0.04, 200, 0.90, 0.03, 200, 0.50, 0.14, 220], // Undernet: deep blue [0.48, 0.26, 0.03, 230, 0.92, 0.02, 230, 0.55, 0.10, 225], // Undernet: faded blue
[0.60, 0.45, 0.06, 140, 0.15, 0.03, 150, 0.65, 0.18, 145], // Anastomosis: transition [0.60, 0.45, 0.04, 290, 0.15, 0.02, 290, 0.55, 0.10, 285], // Anastomosis: faded violet
[0.78, 0.85, 0.04, 110, 0.15, 0.04, 100, 0.60, 0.16, 90 ], // Emergence: golden light [0.78, 0.85, 0.03, 345, 0.15, 0.02, 345, 0.60, 0.10, 340], // Emergence: faded rose
[0.92, 0.94, 0.02, 110, 0.12, 0.03, 100, 0.55, 0.18, 155], // Network Map: canopy [0.92, 0.94, 0.02, 30, 0.12, 0.02, 30, 0.55, 0.08, 25 ], // Network Map: back to warm
] ]
function lerp(a: number, b: number, t: number) { function lerp(a: number, b: number, t: number) {

View File

@ -41,7 +41,7 @@ export function UndernetSection() {
<h3 className="font-serif text-2xl font-semibold"> <h3 className="font-serif text-2xl font-semibold">
Community-Owned Infrastructure Community-Owned Infrastructure
</h3> </h3>
<div className="space-y-4 text-base leading-relaxed opacity-75"> <div className="space-y-4 text-base leading-relaxed opacity-85">
<p> <p>
Beneath the extractive platforms, a different kind of Beneath the extractive platforms, a different kind of
infrastructure is growing. Self-provisioned. Privacy-first. infrastructure is growing. Self-provisioned. Privacy-first.
@ -77,7 +77,7 @@ export function UndernetSection() {
</p> </p>
</div> </div>
<div className="glass-card p-4 space-y-2 font-mono text-xs opacity-60"> <div className="glass-card p-4 space-y-2 font-mono text-xs opacity-80">
<div> <div>
<span className="opacity-50">protocol:</span> fog computing <span className="opacity-50">protocol:</span> fog computing
</div> </div>
@ -100,10 +100,10 @@ export function UndernetSection() {
className="section-reveal glass-card p-6 overflow-x-auto" className="section-reveal glass-card p-6 overflow-x-auto"
style={{ transitionDelay: "0.2s" }} style={{ transitionDelay: "0.2s" }}
> >
<div className="font-mono text-xs sm:text-sm leading-relaxed opacity-60 whitespace-pre"> <div className="font-mono text-xs sm:text-sm leading-relaxed opacity-80 whitespace-pre">
{ASCII_NETWORK} {ASCII_NETWORK}
</div> </div>
<p className="mt-4 font-mono text-xs opacity-40"> <p className="mt-4 font-mono text-xs opacity-60">
// every node is sovereign // every node is sovereign
<br /> <br />
// every connection is encrypted // every connection is encrypted