KOL count: 29 → 25 across marketing/SEO copy

Backend KOL_FEEDS trimmed from 29 to 25 (dead feeds removed).
Sync all hardcoded count mentions:
- layout.tsx JSON-LD, page.tsx (metric + comparison + copy)
- kol/page.tsx, KolPageClient.tsx ("and 26 more" → "and 22 more")
- glossary/page.tsx, opengraph-image.tsx
- public/llms.txt, llms-full.txt
- drop removed KOLs (Dragonfly Capital, Nic Carter) from named lists

Bundles other in-flight frontend work already in the working tree.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
k
2026-06-09 22:55:27 +08:00
parent 9e0f6554cb
commit 4c3c8c6f87
57 changed files with 3464 additions and 1855 deletions
+116 -65
View File
@@ -127,17 +127,20 @@
}
.lp-nav-cta {
display: inline-flex; align-items: center; gap: 8px;
padding: 9px 16px;
font-size: 13px; font-weight: 600;
padding: 9px 18px;
font-size: 13px; font-weight: 700;
color: #0a0907;
background: var(--lp-amber);
background: linear-gradient(135deg, #ffd88a, var(--lp-amber) 55%, #ff9a4d);
border-radius: 999px;
text-decoration: none;
transition: transform 0.15s ease, box-shadow 0.15s ease;
box-shadow: 0 4px 16px var(--lp-amber-glow), inset 0 1px 0 rgba(255,255,255,0.3);
letter-spacing: -0.01em;
}
.lp-nav-cta:hover {
transform: translateY(-1px);
box-shadow: 0 10px 30px var(--lp-amber-glow);
box-shadow: 0 10px 30px var(--lp-amber-glow), inset 0 1px 0 rgba(255,255,255,0.3);
filter: brightness(1.06);
}
/* ---------- Hero ---------- */
@@ -175,15 +178,16 @@
.lp-live-badge {
display: inline-flex; align-items: center; gap: 8px;
margin: 0 0 22px;
padding: 5px 12px 5px 9px;
padding: 6px 14px 6px 10px;
font-size: 11px; font-weight: 700;
color: var(--lp-ink-3);
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.10);
border-radius: 6px;
letter-spacing: 0.08em;
color: var(--lp-ink-2);
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 8px;
letter-spacing: 0.09em;
text-transform: uppercase;
animation: lp-fade-up 0.7s ease both;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}
.lp-live-dot {
width: 8px; height: 8px; border-radius: 50%;
@@ -338,16 +342,17 @@
.lp-eyebrow {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.14em;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--lp-amber);
margin-bottom: 12px;
text-shadow: 0 0 20px rgba(245,165,36,0.35);
}
.lp-h2 {
font-size: clamp(26px, 3.8vw, 48px);
font-size: clamp(26px, 3.8vw, 52px);
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.1;
letter-spacing: -0.035em;
line-height: 1.08;
margin: 0 0 16px;
}
.lp-lead {
@@ -410,9 +415,10 @@
.lp-step-num {
font-family: 'Geist Mono', monospace;
font-size: 12px;
color: var(--lp-ink-4);
color: var(--lp-amber);
letter-spacing: 0.1em;
margin-bottom: 20px;
opacity: 0.7;
}
.lp-step-icon {
width: 52px; height: 52px;
@@ -425,13 +431,13 @@
}
.lp-step h3 {
font-size: 20px;
font-weight: 600;
font-weight: 700;
margin: 0 0 10px;
letter-spacing: -0.01em;
letter-spacing: -0.02em;
}
.lp-step p {
font-size: 15px;
line-height: 1.6;
line-height: 1.62;
color: var(--lp-ink-3);
margin: 0;
}
@@ -450,30 +456,47 @@
background: var(--lp-surface);
border: 1px solid var(--lp-line);
border-radius: 16px;
transition: all 0.2s ease;
transition: transform 0.22s ease, border-color 0.22s ease, background 0.22s ease;
position: relative;
overflow: hidden;
}
.lp-feat::before {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
padding: 1px;
background: linear-gradient(135deg, rgba(245,165,36,0.4), transparent 55%);
-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
opacity: 0;
transition: opacity 0.28s ease;
}
.lp-feat:hover {
background: var(--lp-surface-2);
border-color: var(--lp-line-2);
transform: translateY(-2px);
border-color: rgba(245,165,36,0.22);
transform: translateY(-3px);
}
.lp-feat:hover::before { opacity: 1; }
.lp-feat-icon {
width: 36px; height: 36px;
border-radius: 10px;
width: 40px; height: 40px;
border-radius: 11px;
display: grid; place-items: center;
margin-bottom: 16px;
background: rgba(245,165,36,0.1);
background: linear-gradient(135deg, rgba(245,165,36,0.18), rgba(245,165,36,0.06));
border: 1px solid rgba(245,165,36,0.18);
color: var(--lp-amber);
}
.lp-feat h4 {
font-size: 16px;
font-weight: 600;
font-weight: 700;
margin: 0 0 8px;
letter-spacing: -0.01em;
letter-spacing: -0.015em;
}
.lp-feat p {
font-size: 14px;
line-height: 1.55;
line-height: 1.58;
color: var(--lp-ink-3);
margin: 0;
}
@@ -575,7 +598,7 @@
/* ---------- Final CTA ---------- */
.lp-cta-final {
padding: 88px 0 96px;
padding: 96px 0 104px;
text-align: center;
position: relative;
}
@@ -583,10 +606,10 @@
content: '';
position: absolute;
left: 50%; top: 50%;
width: 700px; height: 700px;
background: radial-gradient(circle, rgba(245,165,36,0.18), transparent 60%);
width: 800px; height: 700px;
background: radial-gradient(ellipse, rgba(245,165,36,0.22) 0%, rgba(239,68,68,0.10) 45%, transparent 70%);
transform: translate(-50%, -50%);
filter: blur(80px);
filter: blur(90px);
pointer-events: none;
z-index: -1;
}
@@ -646,23 +669,25 @@
}
.lp-stat-val {
font-family: 'Geist', sans-serif;
font-size: 34px;
font-weight: 700;
letter-spacing: -0.02em;
font-size: 38px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1;
color: var(--lp-ink);
margin-bottom: 8px;
}
.lp-stat-val .suffix {
font-size: 18px;
font-size: 20px;
color: var(--lp-amber);
margin-left: 2px;
margin-left: 3px;
font-weight: 700;
}
.lp-stat-lbl {
font-size: 12px;
font-size: 11px;
color: var(--lp-ink-3);
text-transform: uppercase;
letter-spacing: 0.08em;
letter-spacing: 0.1em;
font-weight: 600;
}
.lp-stat-sub {
font-size: 11px;
@@ -681,17 +706,18 @@
.lp-post-card {
padding: 24px;
background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01));
background: linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0.01));
border: 1px solid var(--lp-line);
border-radius: 16px;
display: flex;
gap: 18px;
align-items: flex-start;
transition: all 0.25s ease;
transition: transform 0.22s ease, border-color 0.22s ease;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}
.lp-post-card:hover {
border-color: var(--lp-line-2);
transform: translateY(-2px);
border-color: rgba(245,165,36,0.2);
transform: translateY(-3px);
}
.lp-post-kind {
width: 44px; height: 44px; flex-shrink: 0;
@@ -891,11 +917,12 @@
grid-template-columns: repeat(5, 1fr);
gap: 0;
margin-top: 48px;
padding: 32px 16px;
background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.005));
padding: 36px 20px;
background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01));
border: 1px solid var(--lp-line);
border-radius: 20px;
position: relative;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}
@media (max-width: 880px) { .lp-flow { grid-template-columns: 1fr; gap: 20px; } }
@@ -907,11 +934,12 @@
.lp-flow-step:not(:last-child)::after {
content: '→';
position: absolute;
right: -8px;
top: 28px;
font-size: 20px;
right: -10px;
top: 26px;
font-size: 22px;
color: var(--lp-amber);
opacity: 0.6;
opacity: 0.7;
text-shadow: 0 0 14px rgba(245,165,36,0.5);
}
@media (max-width: 880px) {
.lp-flow-step:not(:last-child)::after { display: none; }
@@ -919,15 +947,16 @@
.lp-flow-badge {
display: inline-flex; align-items: center; justify-content: center;
width: 56px; height: 56px;
width: 58px; height: 58px;
border-radius: 16px;
background: linear-gradient(135deg, rgba(245,165,36,0.2), rgba(245,165,36,0.05));
border: 1px solid rgba(245,165,36,0.3);
background: linear-gradient(135deg, rgba(245,165,36,0.22), rgba(245,165,36,0.06));
border: 1px solid rgba(245,165,36,0.35);
color: var(--lp-amber);
font-weight: 700; font-size: 18px;
font-weight: 800; font-size: 18px;
font-family: 'Geist Mono', monospace;
margin-bottom: 14px;
position: relative;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}
.lp-flow-badge::before {
content: '';
@@ -938,10 +967,11 @@
z-index: -1;
}
.lp-flow-step h5 {
font-size: 14px; font-weight: 600; margin: 0 0 6px;
font-size: 14px; font-weight: 700; margin: 0 0 6px;
letter-spacing: -0.01em;
}
.lp-flow-step p {
font-size: 12px; line-height: 1.5;
font-size: 12px; line-height: 1.55;
color: var(--lp-ink-3); margin: 0;
}
.lp-flow-time {
@@ -969,11 +999,12 @@
background: var(--lp-surface);
border: 1px solid var(--lp-line);
border-radius: 14px;
transition: all 0.2s ease;
transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.lp-faq-item:hover {
background: var(--lp-surface-2);
border-color: var(--lp-line-2);
border-color: rgba(245,165,36,0.2);
transform: translateY(-2px);
}
.lp-faq-q {
display: flex; align-items: flex-start; gap: 10px;
@@ -1686,12 +1717,18 @@
animation: lp-fade-up 0.9s 0.55s ease both;
}
.lp-engine-chip {
font-size: 11px; font-weight: 600;
padding: 4px 10px; border-radius: 5px;
font-size: 11px; font-weight: 700;
padding: 5px 11px; border-radius: 6px;
font-family: 'Geist Mono', monospace;
letter-spacing: 0.04em;
letter-spacing: 0.05em;
border: 1px solid;
white-space: nowrap;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
transition: opacity 0.15s ease, transform 0.15s ease;
}
.lp-engine-chip:hover {
opacity: 0.85;
transform: translateY(-1px);
}
.lp-engine-chip.trump { color: var(--lp-amber); background: rgba(245,165,36,0.10); border-color: rgba(245,165,36,0.28); }
.lp-engine-chip.macro { color: var(--lp-green); background: rgba(31,219,99,0.09); border-color: rgba(31,219,99,0.25); }
@@ -1715,12 +1752,12 @@
}
.lp-livefeed-head {
display: flex; align-items: center; gap: 8px;
padding: 11px 16px;
padding: 12px 16px;
border-bottom: 1px solid rgba(255,255,255,0.07);
font-size: 10px; font-weight: 700;
letter-spacing: 0.12em; text-transform: uppercase;
color: var(--lp-ink-3);
background: rgba(255,255,255,0.015);
letter-spacing: 0.13em; text-transform: uppercase;
color: var(--lp-ink-2);
background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
}
.lp-livefeed-dot {
width: 7px; height: 7px; border-radius: 50%;
@@ -1968,10 +2005,11 @@
padding-top: 12px; border-top: 1px solid var(--lp-line);
}
.lp-pillar-metric {
font-size: 22px; font-weight: 700;
font-size: 26px; font-weight: 800;
color: var(--lp-amber);
font-family: 'Geist Mono', ui-monospace, monospace;
line-height: 1;
letter-spacing: -0.02em;
}
.lp-pillar-metric-lbl {
font-size: 11px; color: var(--lp-ink-4);
@@ -1985,10 +2023,21 @@
/* reduce motion respect */
@media (prefers-reduced-motion: reduce) {
/* Catch-all: neutralise all 14 infinite animations (lp-scroll marquee,
lp-float blobs, lp-ping/lp-pulse dots, lp-blink cursor, …) plus every
entrance animation. 0.01ms keeps onAnimationEnd handlers firing. */
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
.lp-noise,
.lp-pillar-edge { animation: none !important; }
.lp-pillar { transform: none !important; transition: none; }
.lp-spotlight { display: none; }
/* Marquee: park at origin instead of mid-translate(-50%). */
.lp-ticker-track { animation: none !important; transform: none !important; }
}
/* ── FAQ ──────────────────────────────────────────────── */
@@ -2006,7 +2055,9 @@
background: var(--lp-surface);
transition: border-color 0.2s;
}
.lp-faq-item:hover { border-color: var(--lp-line-2); }
.lp-faq-item:hover {
border-color: rgba(245,165,36,0.28);
}
.lp-faq-q {
width: 100%;
display: flex;