Files
k 4c3c8c6f87 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>
2026-06-09 22:55:27 +08:00

2154 lines
58 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ============================================================
Landing page — fully scoped under .lp-root
Dark-only, self-contained. Does not touch dashboard styles.
============================================================ */
.lp-root {
--lp-bg: #060605;
--lp-bg-2: #0e0d0b;
--lp-surface: rgba(255, 255, 255, 0.045);
--lp-surface-2: rgba(255, 255, 255, 0.08);
--lp-line: rgba(255, 255, 255, 0.10);
--lp-line-2: rgba(255, 255, 255, 0.18);
--lp-ink: #ffffff;
--lp-ink-2: #d4cfc5;
--lp-ink-3: #8a8578;
--lp-ink-4: #5c584e;
--lp-amber: #f5a524;
--lp-amber-2: #e68a00;
--lp-amber-glow: rgba(245, 165, 36, 0.40);
--lp-red: #f43f3f;
--lp-green: #1fdb63;
--lp-violet: #a78bfa;
min-height: 100vh;
background: var(--lp-bg);
color: var(--lp-ink);
font-family: 'Geist', ui-sans-serif, system-ui, sans-serif;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
position: relative;
}
.lp-root *, .lp-root *::before, .lp-root *::after {
box-sizing: border-box;
}
/* ---------- Animated background mesh ---------- */
.lp-mesh {
position: fixed;
inset: 0;
pointer-events: none;
z-index: 0;
overflow: hidden;
}
.lp-mesh::before,
.lp-mesh::after {
content: '';
position: absolute;
width: 60vmax;
height: 60vmax;
border-radius: 50%;
filter: blur(90px);
opacity: 0.55;
will-change: transform;
}
.lp-mesh::before {
background: radial-gradient(circle, rgba(245,165,36,0.45), transparent 60%);
top: -20vmax; left: -20vmax;
animation: lp-float-a 22s ease-in-out infinite;
}
.lp-mesh::after {
background: radial-gradient(circle, rgba(239,68,68,0.35), transparent 60%);
bottom: -20vmax; right: -20vmax;
animation: lp-float-b 26s ease-in-out infinite;
}
@keyframes lp-float-a {
0%,100% { transform: translate(0,0) scale(1); }
50% { transform: translate(15vw, 10vh) scale(1.15); }
}
@keyframes lp-float-b {
0%,100% { transform: translate(0,0) scale(1); }
50% { transform: translate(-12vw, -8vh) scale(1.1); }
}
/* ---------- Grid overlay ---------- */
.lp-grid {
position: fixed; inset: 0; pointer-events: none; z-index: 0;
background-image:
linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
background-size: 56px 56px;
mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 80%);
-webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 80%);
}
/* ---------- Container ---------- */
.lp-wrap {
position: relative;
z-index: 1;
max-width: 1180px;
margin: 0 auto;
padding: 0 24px;
}
/* ---------- Nav ---------- */
.lp-nav {
position: sticky;
top: 0;
z-index: 20;
backdrop-filter: blur(14px);
background: rgba(10,9,7,0.72);
border-bottom: 1px solid var(--lp-line);
}
.lp-nav-inner {
max-width: 1180px;
margin: 0 auto;
padding: 12px 24px;
display: flex;
align-items: center;
justify-content: space-between;
}
.lp-logo {
display: flex; align-items: center; gap: 10px;
font-weight: 700; font-size: 15px; letter-spacing: -0.01em;
color: var(--lp-ink);
text-decoration: none;
}
.lp-logo-dot {
width: 10px; height: 10px; border-radius: 50%;
background: var(--lp-amber);
box-shadow: 0 0 16px var(--lp-amber-glow);
animation: lp-pulse 1.8s ease-in-out infinite;
}
@keyframes lp-pulse {
0%,100% { transform: scale(1); opacity: 1; }
50% { transform: scale(1.35); opacity: 0.7; }
}
.lp-nav-cta {
display: inline-flex; align-items: center; gap: 8px;
padding: 9px 18px;
font-size: 13px; font-weight: 700;
color: #0a0907;
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), inset 0 1px 0 rgba(255,255,255,0.3);
filter: brightness(1.06);
}
/* ---------- Hero ---------- */
.lp-hero {
min-height: calc(100vh - 56px);
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: 52px;
align-items: start;
padding: 72px 0 60px;
text-align: left;
}
.lp-hero-left {
display: flex;
flex-direction: column;
align-items: flex-start;
padding-top: 4px;
}
.lp-hero-right {
position: relative;
padding-top: 2px;
}
@media (max-width: 960px) {
.lp-hero {
grid-template-columns: 1fr;
text-align: center;
padding: 52px 0 56px;
gap: 0;
align-items: center;
}
.lp-hero-left { align-items: center; }
.lp-hero-right { display: none; }
}
.lp-live-badge {
display: inline-flex; align-items: center; gap: 8px;
margin: 0 0 22px;
padding: 6px 14px 6px 10px;
font-size: 11px; font-weight: 700;
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%;
background: var(--lp-red);
box-shadow: 0 0 0 0 rgba(239,68,68,0.7);
animation: lp-ping 1.4s infinite;
}
@keyframes lp-ping {
0% { box-shadow: 0 0 0 0 rgba(239,68,68,0.7); }
70% { box-shadow: 0 0 0 10px rgba(239,68,68,0); }
100% { box-shadow: 0 0 0 0 rgba(239,68,68,0); }
}
.lp-h1 {
font-size: clamp(36px, 5.0vw, 72px);
font-weight: 900;
line-height: 1.05;
letter-spacing: -0.04em;
margin: 0 0 18px;
animation: lp-fade-up 0.9s 0.1s ease both;
}
.lp-h1 .grad {
background: linear-gradient(95deg, #ffe2a8 0%, var(--lp-amber) 45%, #ff7a3d 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
filter: drop-shadow(0 0 40px rgba(245,165,36,0.25));
}
.lp-h1 .strike {
position: relative;
display: inline-block;
}
.lp-h1 .strike::after {
content: '';
position: absolute;
left: -4px; right: -4px;
bottom: 0.18em;
height: 0.12em;
background: linear-gradient(90deg, var(--lp-amber), #ff7a3d);
transform-origin: left;
animation: lp-strike-in 1s 0.8s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes lp-strike-in {
from { transform: scaleX(0); }
to { transform: scaleX(1); }
}
.lp-sub {
max-width: 480px;
margin: 0 0 32px;
font-size: clamp(14px, 1.5vw, 17px);
line-height: 1.55;
color: var(--lp-ink-3);
animation: lp-fade-up 0.9s 0.25s ease both;
}
@media (max-width: 960px) {
.lp-sub { margin: 0 auto 32px; max-width: 520px; }
.lp-engine-chips { justify-content: center; }
}
.lp-ctas {
display: flex; gap: 12px;
justify-content: flex-start;
flex-wrap: wrap;
animation: lp-fade-up 0.9s 0.4s ease both;
}
@media (max-width: 920px) {
.lp-ctas { justify-content: center; }
}
.lp-btn {
display: inline-flex; align-items: center; gap: 8px;
padding: 14px 24px;
font-size: 15px; font-weight: 700;
border-radius: 10px;
text-decoration: none;
transition: all 0.18s ease;
cursor: pointer; border: none;
letter-spacing: -0.01em;
}
/* Primary CTA — kept static on purpose. Previously the button had a magnetic
pull, a shimmer sweep, a hover lift, and a glow expansion stacked together.
Multiple users found it busy/distracting, so the button now just sits with
a fixed amber gradient + soft glow. Don't add hover transforms here. */
.lp-btn-primary {
color: #0a0907;
background: linear-gradient(135deg, #ffd88a, var(--lp-amber) 55%, #ff7a3d);
box-shadow: 0 10px 40px rgba(245,165,36,0.35), inset 0 1px 0 rgba(255,255,255,0.4);
position: relative;
}
.lp-btn-primary:hover {
/* Intentionally no transform / box-shadow change — see comment above. */
filter: brightness(1.05);
}
.lp-btn-secondary {
color: var(--lp-ink);
background: var(--lp-surface);
border: 1px solid var(--lp-line-2);
}
.lp-btn-secondary:hover {
background: var(--lp-surface-2);
border-color: rgba(255,255,255,0.25);
}
.lp-arrow {
display: inline-block;
transition: transform 0.2s ease;
}
.lp-btn:hover .lp-arrow { transform: translateX(4px); }
/* ---------- Ticker strip ---------- */
.lp-ticker {
margin-top: 0;
padding: 16px 0;
border-top: 1px solid var(--lp-line);
border-bottom: 1px solid var(--lp-line);
overflow: hidden;
position: relative;
animation: lp-fade-up 1s 0.55s ease both;
}
.lp-ticker-track {
display: flex;
gap: 48px;
width: max-content;
animation: lp-scroll 28s linear infinite;
white-space: nowrap;
}
@keyframes lp-scroll {
to { transform: translateX(-50%); }
}
.lp-ticker-item {
display: inline-flex; align-items: center; gap: 10px;
font-family: 'Geist Mono', ui-monospace, monospace;
font-size: 13px;
color: var(--lp-ink-3);
}
.lp-ticker-item .tag {
font-size: 10px;
padding: 2px 7px;
border-radius: 4px;
font-weight: 600;
letter-spacing: 0.05em;
}
.lp-ticker-item .tag.buy { background: rgba(34,197,94,0.12); color: var(--lp-green); }
.lp-ticker-item .tag.sell { background: rgba(239,68,68,0.12); color: var(--lp-red); }
.lp-ticker-item .tag.hold { background: rgba(255,255,255,0.06); color: var(--lp-ink-3); }
/* ---------- Section ---------- */
.lp-section {
padding: 72px 0;
position: relative;
}
.lp-eyebrow {
font-size: 11px;
font-weight: 700;
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, 52px);
font-weight: 800;
letter-spacing: -0.035em;
line-height: 1.08;
margin: 0 0 16px;
}
.lp-lead {
max-width: 580px;
font-size: 16px;
line-height: 1.6;
color: var(--lp-ink-3);
margin: 0 0 36px;
}
/* ---------- Scroll reveal ---------- */
.lp-reveal {
opacity: 0;
transform: translateY(28px);
transition: opacity 0.8s ease, transform 0.8s cubic-bezier(.2,.8,.2,1);
}
.lp-reveal.in {
opacity: 1;
transform: translateY(0);
}
/* ---------- How it works ---------- */
.lp-steps {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}
@media (max-width: 880px) {
.lp-steps { grid-template-columns: 1fr; }
}
.lp-step {
position: relative;
padding: 36px 28px 32px;
background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.01));
border: 1px solid var(--lp-line);
border-radius: 20px;
transition: transform 0.25s ease, border-color 0.25s ease;
overflow: hidden;
}
.lp-step::before {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
padding: 1px;
background: linear-gradient(135deg, rgba(245,165,36,0.35), transparent 60%);
-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.3s ease;
}
.lp-step:hover {
transform: translateY(-4px);
border-color: rgba(245,165,36,0.25);
}
.lp-step:hover::before { opacity: 1; }
.lp-step-num {
font-family: 'Geist Mono', monospace;
font-size: 12px;
color: var(--lp-amber);
letter-spacing: 0.1em;
margin-bottom: 20px;
opacity: 0.7;
}
.lp-step-icon {
width: 52px; height: 52px;
border-radius: 14px;
display: grid; place-items: center;
margin-bottom: 22px;
background: linear-gradient(135deg, rgba(245,165,36,0.2), rgba(245,165,36,0.05));
border: 1px solid rgba(245,165,36,0.2);
color: var(--lp-amber);
}
.lp-step h3 {
font-size: 20px;
font-weight: 700;
margin: 0 0 10px;
letter-spacing: -0.02em;
}
.lp-step p {
font-size: 15px;
line-height: 1.62;
color: var(--lp-ink-3);
margin: 0;
}
/* ---------- Features grid ---------- */
.lp-features {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}
@media (max-width: 880px) { .lp-features { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .lp-features { grid-template-columns: 1fr; } }
.lp-feat {
padding: 26px 24px;
background: var(--lp-surface);
border: 1px solid var(--lp-line);
border-radius: 16px;
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: rgba(245,165,36,0.22);
transform: translateY(-3px);
}
.lp-feat:hover::before { opacity: 1; }
.lp-feat-icon {
width: 40px; height: 40px;
border-radius: 11px;
display: grid; place-items: center;
margin-bottom: 16px;
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: 700;
margin: 0 0 8px;
letter-spacing: -0.015em;
}
.lp-feat p {
font-size: 14px;
line-height: 1.58;
color: var(--lp-ink-3);
margin: 0;
}
/* ---------- Demo card ---------- */
.lp-demo {
margin-top: 48px;
padding: 4px;
background: linear-gradient(135deg, rgba(245,165,36,0.5), rgba(239,68,68,0.4), rgba(167,139,250,0.4));
border-radius: 24px;
box-shadow: 0 30px 80px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.05);
}
.lp-demo-inner {
background: #0f0d0a;
border-radius: 20px;
padding: 36px 32px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
align-items: center;
}
@media (max-width: 880px) {
.lp-demo-inner { grid-template-columns: 1fr; gap: 24px; }
}
.lp-demo-post {
background: rgba(255,255,255,0.03);
border: 1px solid var(--lp-line);
border-radius: 14px;
padding: 20px;
}
.lp-demo-handle {
display: flex; align-items: center; gap: 10px;
margin-bottom: 14px;
}
.lp-demo-avatar {
width: 40px; height: 40px; border-radius: 50%;
background: linear-gradient(135deg, #ff9a4d, #e6571a);
display: grid; place-items: center;
font-weight: 700; color: #fff;
font-size: 16px;
}
.lp-demo-name {
font-weight: 600;
font-size: 14px;
}
.lp-demo-handle-at {
font-size: 12px;
color: var(--lp-ink-3);
}
.lp-demo-text {
font-size: 15px;
line-height: 1.5;
color: var(--lp-ink-2);
margin: 0 0 12px;
}
.lp-demo-meta {
font-size: 12px;
color: var(--lp-ink-4);
font-family: 'Geist Mono', monospace;
}
.lp-arrow-flow {
display: flex; align-items: center; justify-content: center;
gap: 8px;
font-size: 12px;
color: var(--lp-amber);
margin: 16px 0;
font-family: 'Geist Mono', monospace;
letter-spacing: 0.05em;
}
.lp-arrow-flow-line {
flex: 1;
height: 1px;
background: linear-gradient(90deg, transparent, var(--lp-amber), transparent);
}
.lp-demo-signal {
display: flex; flex-direction: column; gap: 14px;
}
.lp-signal-row {
display: flex; align-items: center; justify-content: space-between;
padding: 10px 14px;
background: rgba(255,255,255,0.02);
border: 1px solid var(--lp-line);
border-radius: 10px;
}
.lp-signal-row .lbl {
font-size: 12px;
color: var(--lp-ink-3);
text-transform: uppercase;
letter-spacing: 0.06em;
}
.lp-signal-row .val {
font-family: 'Geist Mono', monospace;
font-size: 14px;
font-weight: 600;
}
.lp-signal-row .val.buy { color: var(--lp-green); }
.lp-signal-row .val.short { color: var(--lp-red); }
/* ---------- Final CTA ---------- */
.lp-cta-final {
padding: 96px 0 104px;
text-align: center;
position: relative;
}
.lp-cta-final::before {
content: '';
position: absolute;
left: 50%; top: 50%;
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(90px);
pointer-events: none;
z-index: -1;
}
/* ---------- Footer ---------- */
.lp-foot {
border-top: 1px solid var(--lp-line);
padding: 28px 24px 40px;
font-size: 12px;
color: var(--lp-ink-4);
text-align: center;
position: relative;
z-index: 1;
}
.lp-foot a {
color: var(--lp-ink-3);
text-decoration: none;
margin: 0 10px;
}
.lp-foot a:hover { color: var(--lp-ink-2); }
.lp-disclaimer {
max-width: 680px;
margin: 0 auto 16px;
line-height: 1.5;
color: var(--lp-ink-4);
}
/* ---------- Shared animations ---------- */
@keyframes lp-fade-up {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
/* ---------- Stat strip ---------- */
.lp-stats {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 0;
margin-top: 72px;
border: 1px solid var(--lp-line);
border-radius: 20px;
overflow: hidden;
background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.005));
backdrop-filter: blur(12px);
}
@media (max-width: 880px) { .lp-stats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .lp-stats { grid-template-columns: 1fr; } }
.lp-stat {
padding: 26px 22px;
border-right: 1px solid var(--lp-line);
position: relative;
}
.lp-stat:last-child { border-right: none; }
@media (max-width: 880px) {
.lp-stat:nth-child(2n) { border-right: none; }
.lp-stat:nth-child(-n+2) { border-bottom: 1px solid var(--lp-line); }
}
.lp-stat-val {
font-family: 'Geist', sans-serif;
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: 20px;
color: var(--lp-amber);
margin-left: 3px;
font-weight: 700;
}
.lp-stat-lbl {
font-size: 11px;
color: var(--lp-ink-3);
text-transform: uppercase;
letter-spacing: 0.1em;
font-weight: 600;
}
.lp-stat-sub {
font-size: 11px;
color: var(--lp-ink-4);
margin-top: 4px;
}
/* ---------- Post type cards ---------- */
.lp-posts {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
margin-top: 48px;
}
@media (max-width: 760px) { .lp-posts { grid-template-columns: 1fr; } }
.lp-post-card {
padding: 24px;
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: 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: rgba(245,165,36,0.2);
transform: translateY(-3px);
}
.lp-post-kind {
width: 44px; height: 44px; flex-shrink: 0;
border-radius: 12px;
display: grid; place-items: center;
font-size: 11px; font-weight: 700;
letter-spacing: 0.06em;
font-family: 'Geist Mono', monospace;
}
.lp-post-kind.long { background: rgba(34,197,94,0.12); color: var(--lp-green); border: 1px solid rgba(34,197,94,0.25); }
.lp-post-kind.short { background: rgba(239,68,68,0.12); color: var(--lp-red); border: 1px solid rgba(239,68,68,0.25); }
.lp-post-kind.hold { background: rgba(255,255,255,0.05); color: var(--lp-ink-3); border: 1px solid var(--lp-line); }
.lp-post-kind.noise { background: rgba(167,139,250,0.12); color: var(--lp-violet); border: 1px solid rgba(167,139,250,0.25); }
.lp-post-body h4 {
font-size: 15px; font-weight: 600; margin: 0 0 6px;
}
.lp-post-quote {
font-size: 14px; line-height: 1.5;
color: var(--lp-ink-2);
font-style: italic;
margin: 0 0 10px;
padding-left: 10px;
border-left: 2px solid var(--lp-line-2);
}
.lp-post-result {
font-size: 12px;
color: var(--lp-ink-3);
font-family: 'Geist Mono', monospace;
}
/* ---------- Dashboard preview (mock) ---------- */
.lp-preview {
margin-top: 56px;
background: linear-gradient(135deg, rgba(245,165,36,0.3), rgba(239,68,68,0.3), rgba(167,139,250,0.3));
padding: 3px;
border-radius: 24px;
box-shadow: 0 40px 120px rgba(0,0,0,0.6);
position: relative;
}
.lp-preview::before {
content: '';
position: absolute;
inset: -20px;
background: radial-gradient(ellipse at center, rgba(245,165,36,0.15), transparent 60%);
filter: blur(40px);
z-index: -1;
}
.lp-preview-inner {
background: #0c0b08;
border-radius: 21px;
overflow: hidden;
}
.lp-preview-bar {
display: flex; align-items: center; gap: 8px;
padding: 12px 18px;
border-bottom: 1px solid var(--lp-line);
background: rgba(255,255,255,0.02);
}
.lp-preview-dots {
display: flex; gap: 6px;
}
.lp-preview-dots span {
width: 11px; height: 11px; border-radius: 50%;
background: rgba(255,255,255,0.15);
}
.lp-preview-url {
flex: 1;
padding: 5px 12px;
font-family: 'Geist Mono', monospace;
font-size: 12px;
color: var(--lp-ink-3);
background: rgba(255,255,255,0.04);
border-radius: 6px;
margin-left: 10px;
text-align: center;
}
.lp-preview-body {
display: grid;
grid-template-columns: 1.2fr 1fr;
gap: 0;
min-height: 420px;
}
@media (max-width: 760px) {
.lp-preview-body { grid-template-columns: 1fr; }
}
.lp-preview-col {
padding: 22px;
border-right: 1px solid var(--lp-line);
}
.lp-preview-col:last-child { border-right: none; }
.lp-preview-col-head {
display: flex; align-items: center; justify-content: space-between;
margin-bottom: 14px;
}
.lp-preview-col-head h5 {
font-size: 13px; margin: 0;
color: var(--lp-ink-2);
letter-spacing: -0.01em;
}
.lp-preview-live {
display: inline-flex; align-items: center; gap: 6px;
font-size: 10px; font-weight: 600;
color: var(--lp-green);
letter-spacing: 0.06em; text-transform: uppercase;
}
.lp-preview-live::before {
content: ''; width: 6px; height: 6px; border-radius: 50%;
background: var(--lp-green);
box-shadow: 0 0 0 0 rgba(34,197,94,0.7);
animation: lp-ping 1.6s infinite;
}
.lp-preview-item {
padding: 12px 0;
border-bottom: 1px solid var(--lp-line);
font-size: 13px;
}
.lp-preview-item:last-child { border-bottom: none; }
.lp-preview-item-head {
display: flex; justify-content: space-between; align-items: baseline;
margin-bottom: 4px;
}
.lp-preview-item-handle {
color: var(--lp-ink-3); font-size: 12px;
}
.lp-preview-item-time {
color: var(--lp-ink-4); font-family: 'Geist Mono', monospace; font-size: 11px;
}
.lp-preview-item-text {
color: var(--lp-ink-2);
margin: 0 0 8px;
line-height: 1.45;
font-size: 13px;
}
.lp-preview-item-tags {
display: flex; gap: 6px; flex-wrap: wrap;
}
.lp-preview-chip {
font-size: 10px;
padding: 2px 7px;
border-radius: 4px;
font-family: 'Geist Mono', monospace;
font-weight: 600;
letter-spacing: 0.05em;
}
.lp-preview-chip.buy { background: rgba(34,197,94,0.12); color: var(--lp-green); }
.lp-preview-chip.short { background: rgba(239,68,68,0.12); color: var(--lp-red); }
.lp-preview-chip.hold { background: rgba(255,255,255,0.05); color: var(--lp-ink-3); }
.lp-preview-chip.asset { background: rgba(245,165,36,0.12); color: var(--lp-amber); }
.lp-preview-chip.conf { background: rgba(167,139,250,0.12); color: var(--lp-violet); }
.lp-preview-kpis {
display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
margin-bottom: 16px;
}
.lp-kpi-box {
padding: 12px;
background: rgba(255,255,255,0.02);
border: 1px solid var(--lp-line);
border-radius: 10px;
}
.lp-kpi-box .v {
font-size: 20px; font-weight: 700; letter-spacing: -0.02em;
color: var(--lp-ink);
}
.lp-kpi-box .l {
font-size: 11px; color: var(--lp-ink-3);
text-transform: uppercase; letter-spacing: 0.06em;
margin-top: 2px;
}
.lp-preview-trade {
padding: 10px 12px;
background: rgba(255,255,255,0.02);
border: 1px solid var(--lp-line);
border-radius: 8px;
margin-bottom: 8px;
display: flex; justify-content: space-between; align-items: center;
font-family: 'Geist Mono', monospace;
font-size: 12px;
}
.lp-preview-trade .pair {
color: var(--lp-ink-2); font-weight: 600;
}
.lp-preview-trade .side.long { color: var(--lp-green); }
.lp-preview-trade .side.short { color: var(--lp-red); }
.lp-preview-trade .status {
color: var(--lp-amber);
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.06em;
}
/* ---------- Flow timeline ---------- */
.lp-flow {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 0;
margin-top: 48px;
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; } }
.lp-flow-step {
padding: 0 16px;
text-align: center;
position: relative;
}
.lp-flow-step:not(:last-child)::after {
content: '→';
position: absolute;
right: -10px;
top: 26px;
font-size: 22px;
color: var(--lp-amber);
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; }
}
.lp-flow-badge {
display: inline-flex; align-items: center; justify-content: center;
width: 58px; height: 58px;
border-radius: 16px;
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: 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: '';
position: absolute; inset: -6px;
border-radius: 20px;
background: rgba(245,165,36,0.1);
filter: blur(10px);
z-index: -1;
}
.lp-flow-step h5 {
font-size: 14px; font-weight: 700; margin: 0 0 6px;
letter-spacing: -0.01em;
}
.lp-flow-step p {
font-size: 12px; line-height: 1.55;
color: var(--lp-ink-3); margin: 0;
}
.lp-flow-time {
display: inline-block;
margin-top: 8px;
font-size: 11px;
font-family: 'Geist Mono', monospace;
color: var(--lp-amber);
background: rgba(245,165,36,0.08);
padding: 2px 8px;
border-radius: 4px;
}
/* ---------- FAQ ---------- */
.lp-faq {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
margin-top: 40px;
}
@media (max-width: 760px) { .lp-faq { grid-template-columns: 1fr; } }
.lp-faq-item {
padding: 22px 24px;
background: var(--lp-surface);
border: 1px solid var(--lp-line);
border-radius: 14px;
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: rgba(245,165,36,0.2);
transform: translateY(-2px);
}
.lp-faq-q {
display: flex; align-items: flex-start; gap: 10px;
font-size: 15px; font-weight: 600;
margin: 0 0 10px;
color: var(--lp-ink);
letter-spacing: -0.01em;
}
.lp-faq-q::before {
content: 'Q';
flex-shrink: 0;
width: 22px; height: 22px;
font-size: 11px;
display: grid; place-items: center;
background: var(--lp-amber);
color: #0a0907;
border-radius: 6px;
font-weight: 700;
margin-top: 1px;
}
.lp-faq-a {
font-size: 14px;
line-height: 1.6;
color: var(--lp-ink-3);
margin: 0;
padding-left: 32px;
}
/* ---------- Safety strip ---------- */
.lp-safety-strip {
display: flex; flex-wrap: wrap; gap: 8px;
justify-content: center;
margin-top: 36px;
}
.lp-safety-chip {
display: inline-flex; align-items: center; gap: 6px;
padding: 8px 14px;
background: rgba(255,255,255,0.04);
border: 1px solid var(--lp-line);
border-radius: 999px;
font-size: 12px;
color: var(--lp-ink-2);
}
.lp-safety-chip svg { color: var(--lp-amber); }
/* ---------- Terminal block (live feed) ---------- */
.lp-term {
position: relative;
margin-top: 56px;
border-radius: 18px;
background:
linear-gradient(180deg, rgba(245,165,36,0.08), transparent 50%),
#07060a;
border: 1px solid var(--lp-line-2);
overflow: hidden;
box-shadow:
0 40px 120px rgba(0,0,0,0.6),
0 0 0 1px rgba(245,165,36,0.08),
inset 0 1px 0 rgba(255,255,255,0.03);
}
.lp-term::before {
/* Glow halo */
content: '';
position: absolute;
inset: -40px;
background: radial-gradient(ellipse at 20% 0%, rgba(245,165,36,0.22), transparent 55%);
filter: blur(30px);
pointer-events: none;
z-index: 0;
}
.lp-term::after {
/* Subtle scanlines */
content: '';
position: absolute;
inset: 0;
background: repeating-linear-gradient(
0deg,
rgba(255,255,255,0.018) 0px,
rgba(255,255,255,0.018) 1px,
transparent 1px,
transparent 3px
);
pointer-events: none;
z-index: 1;
mix-blend-mode: overlay;
}
.lp-term > * { position: relative; z-index: 2; }
.lp-term-head {
display: flex;
align-items: center;
gap: 12px;
padding: 12px 18px;
border-bottom: 1px solid rgba(255,255,255,0.06);
background: rgba(255,255,255,0.015);
font-family: 'Geist Mono', ui-monospace, monospace;
font-size: 11px;
color: var(--lp-ink-3);
letter-spacing: 0.04em;
}
.lp-term-head .dot {
width: 8px; height: 8px; border-radius: 50%;
background: var(--lp-green);
box-shadow: 0 0 10px var(--lp-green), 0 0 0 0 rgba(34,197,94,0.6);
animation: lp-ping 1.6s infinite;
}
.lp-term-head .sep { opacity: 0.35; }
.lp-term-head .meta-live { color: var(--lp-green); }
.lp-term-head .meta-amber { color: var(--lp-amber); }
.lp-term-head .spacer { flex: 1; }
.lp-term-body {
padding: 14px 0 22px;
font-family: 'Geist Mono', ui-monospace, monospace;
font-size: 13.5px;
line-height: 1.55;
color: var(--lp-ink-2);
}
.lp-term-row {
padding: 14px 22px;
border-bottom: 1px dashed rgba(255,255,255,0.05);
opacity: 0;
transform: translateY(8px);
animation: lp-term-in 0.5s ease forwards;
}
.lp-term-row:last-of-type { border-bottom: none; }
@keyframes lp-term-in {
to { opacity: 1; transform: translateY(0); }
}
.lp-term-row.new {
background: linear-gradient(90deg, rgba(245,165,36,0.05), transparent 40%);
border-left: 2px solid var(--lp-amber);
padding-left: 20px;
position: relative;
}
.lp-term-row.new::before {
content: 'NEW';
position: absolute;
top: 14px; right: 22px;
font-size: 10px;
padding: 2px 7px;
border-radius: 4px;
font-weight: 700;
letter-spacing: 0.08em;
background: var(--lp-amber);
color: #0a0907;
animation: lp-pulse-soft 1.8s ease-in-out infinite;
}
@keyframes lp-pulse-soft {
0%, 100% { opacity: 1; }
50% { opacity: 0.55; }
}
.lp-term-meta {
display: flex; gap: 14px; align-items: center;
font-size: 11px;
color: var(--lp-ink-4);
margin-bottom: 6px;
letter-spacing: 0.02em;
}
.lp-term-meta .handle { color: var(--lp-ink-3); }
.lp-term-meta .ts { color: var(--lp-ink-4); }
.lp-term-quote {
color: var(--lp-ink);
margin: 4px 0 10px;
font-family: 'Geist', ui-sans-serif, sans-serif;
font-size: 15px;
line-height: 1.45;
font-weight: 400;
letter-spacing: -0.005em;
}
.lp-term-quote::before {
content: '> ';
color: var(--lp-amber);
opacity: 0.7;
}
.lp-term-verdict {
display: flex;
flex-wrap: wrap;
gap: 8px 18px;
font-size: 12px;
color: var(--lp-ink-3);
}
.lp-term-verdict .seg { display: inline-flex; gap: 6px; align-items: center; }
.lp-term-verdict .k { color: var(--lp-ink-4); }
.lp-term-verdict .v { color: var(--lp-ink-2); font-weight: 500; }
.lp-term-verdict .v.long { color: var(--lp-green); }
.lp-term-verdict .v.short { color: var(--lp-red); }
.lp-term-verdict .v.skip { color: var(--lp-ink-3); }
.lp-term-verdict .v.amber { color: var(--lp-amber); }
.lp-term-verdict .bar {
display: inline-block;
width: 60px; height: 5px;
border-radius: 999px;
background: rgba(255,255,255,0.08);
position: relative;
overflow: hidden;
}
.lp-term-verdict .bar-fill {
position: absolute; inset: 0;
background: linear-gradient(90deg, var(--lp-amber), #ff7a3d);
border-radius: inherit;
transform-origin: left;
animation: lp-bar-in 1s 0.3s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes lp-bar-in { from { transform: scaleX(0); } }
.lp-term-cursor {
display: inline-block;
width: 8px; height: 15px;
background: var(--lp-amber);
vertical-align: -2px;
margin-left: 2px;
animation: lp-blink 1s steps(2) infinite;
}
@keyframes lp-blink { 50% { opacity: 0; } }
.lp-term-foot {
display: flex; align-items: center; justify-content: space-between;
padding: 12px 22px;
border-top: 1px solid rgba(255,255,255,0.05);
background: rgba(0,0,0,0.25);
font-family: 'Geist Mono', monospace;
font-size: 11px;
color: var(--lp-ink-4);
}
.lp-term-foot .tail { color: var(--lp-ink-3); }
/* Stagger delays so rows enter one after another */
.lp-term-row:nth-child(1) { animation-delay: 0.05s; }
.lp-term-row:nth-child(2) { animation-delay: 0.25s; }
.lp-term-row:nth-child(3) { animation-delay: 0.45s; }
.lp-term-row:nth-child(4) { animation-delay: 0.65s; }
.lp-term-row:nth-child(5) { animation-delay: 0.85s; }
/* ---------- Condensed features ---------- */
.lp-why {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 14px;
margin-top: 40px;
}
@media (max-width: 880px) { .lp-why { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .lp-why { grid-template-columns: 1fr; } }
.lp-why-card {
padding: 24px 22px;
border: 1px solid var(--lp-line);
border-radius: 14px;
background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.008));
transition: all 0.2s ease;
}
.lp-why-card:hover {
border-color: rgba(245,165,36,0.25);
transform: translateY(-3px);
}
.lp-why-card .num {
font-family: 'Geist Mono', monospace;
font-size: 11px;
color: var(--lp-amber);
letter-spacing: 0.1em;
margin-bottom: 12px;
}
.lp-why-card h4 {
font-size: 16px; font-weight: 600; margin: 0 0 8px;
letter-spacing: -0.01em;
}
.lp-why-card p {
font-size: 13.5px; line-height: 1.55;
color: var(--lp-ink-3); margin: 0;
}
/* ---------- Stat strip (kept) ---------- */
.lp-stats {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 0;
margin-top: 48px;
border: 1px solid var(--lp-line);
border-radius: 20px;
overflow: hidden;
background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.005));
backdrop-filter: blur(12px);
}
@media (max-width: 880px) { .lp-stats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .lp-stats { grid-template-columns: 1fr; } }
.lp-stat {
padding: 24px 22px;
border-right: 1px solid var(--lp-line);
}
.lp-stat:last-child { border-right: none; }
@media (max-width: 880px) {
.lp-stat:nth-child(2n) { border-right: none; }
.lp-stat:nth-child(-n+2) { border-bottom: 1px solid var(--lp-line); }
}
.lp-stat-val {
font-family: 'Geist', sans-serif;
font-size: 30px; font-weight: 700; letter-spacing: -0.02em;
line-height: 1; margin-bottom: 8px;
}
.lp-stat-val .suffix { font-size: 16px; color: var(--lp-amber); margin-left: 2px; }
.lp-stat-lbl {
font-size: 11px; color: var(--lp-ink-3);
text-transform: uppercase; letter-spacing: 0.08em;
}
.lp-stat-sub {
font-size: 11px; color: var(--lp-ink-4); margin-top: 4px;
}
/* ---------- Press / headlines ---------- */
.lp-press {
margin-top: 40px;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 14px;
}
@media (max-width: 880px) { .lp-press { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .lp-press { grid-template-columns: 1fr; } }
/* Base card (small) */
.lp-news {
padding: 20px 20px 18px;
border: 1px solid var(--lp-line);
border-radius: 14px;
background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.005));
text-decoration: none;
color: inherit;
display: flex;
flex-direction: column;
gap: 12px;
transition: all 0.22s ease;
position: relative;
overflow: hidden;
min-height: 200px;
}
.lp-news:hover {
transform: translateY(-3px);
border-color: rgba(245,165,36,0.3);
background: linear-gradient(180deg, rgba(245,165,36,0.05), rgba(255,255,255,0.008));
}
.lp-news-head {
display: flex; align-items: center; justify-content: space-between;
font-family: 'Geist Mono', monospace;
font-size: 10px;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--lp-ink-3);
}
.lp-news-outlet { color: var(--lp-amber); font-weight: 600; }
.lp-news-date { color: var(--lp-ink-4); white-space: nowrap; }
.lp-news-headline {
font-size: 15px;
font-weight: 600;
line-height: 1.38;
margin: 0;
letter-spacing: -0.01em;
color: var(--lp-ink);
}
.lp-news-stat {
display: flex; align-items: baseline; gap: 10px;
margin-top: auto;
padding-top: 12px;
border-top: 1px dashed rgba(255,255,255,0.08);
}
.lp-news-stat .n {
font-family: 'Geist', sans-serif;
font-size: 24px; font-weight: 700; letter-spacing: -0.02em;
line-height: 1;
color: var(--lp-amber);
}
.lp-news-stat .n.up { color: var(--lp-green); }
.lp-news-stat .n.down { color: var(--lp-red); }
.lp-news-stat .l {
font-size: 10.5px;
color: var(--lp-ink-3);
text-transform: uppercase;
letter-spacing: 0.06em;
line-height: 1.35;
}
.lp-news-arrow {
position: absolute;
top: 20px; right: 20px;
color: var(--lp-ink-4);
font-size: 14px;
transition: transform 0.2s ease, color 0.2s ease;
}
.lp-news:hover .lp-news-arrow {
color: var(--lp-amber);
transform: translate(3px, -3px);
}
/* Featured (big) — full-width, horizontal split */
.lp-news-big {
grid-column: 1 / -1;
flex-direction: row;
align-items: stretch;
gap: 0;
padding: 0;
min-height: 200px;
background:
linear-gradient(135deg, rgba(34,197,94,0.08), transparent 50%),
linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01));
border-color: rgba(34,197,94,0.22);
position: relative;
}
.lp-news-big::before {
content: '';
position: absolute;
inset: -2px;
border-radius: 16px;
background: radial-gradient(ellipse at 10% 50%, rgba(34,197,94,0.22), transparent 55%);
filter: blur(30px);
pointer-events: none;
z-index: -1;
}
.lp-news-big:hover {
border-color: rgba(34,197,94,0.4);
background:
linear-gradient(135deg, rgba(34,197,94,0.12), transparent 50%),
linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.012));
}
.lp-news-big-figure {
flex: 0 0 36%;
padding: 30px 30px 28px;
display: flex;
flex-direction: column;
justify-content: center;
gap: 6px;
border-right: 1px solid rgba(255,255,255,0.08);
background:
radial-gradient(ellipse at center, rgba(34,197,94,0.06), transparent 70%);
position: relative;
}
.lp-news-big-figure .tag {
display: inline-flex; align-items: center; gap: 6px;
font-family: 'Geist Mono', monospace;
font-size: 10px; font-weight: 700;
letter-spacing: 0.12em;
color: var(--lp-green);
margin-bottom: 10px;
text-transform: uppercase;
}
.lp-news-big-figure .tag::before {
content: '';
width: 6px; height: 6px; border-radius: 50%;
background: var(--lp-green);
box-shadow: 0 0 10px var(--lp-green), 0 0 0 0 rgba(34,197,94,0.6);
animation: lp-ping 1.6s infinite;
}
.lp-news-big-figure .num {
font-family: 'Geist', sans-serif;
font-size: clamp(44px, 6vw, 66px);
font-weight: 800;
letter-spacing: -0.035em;
line-height: 0.95;
color: var(--lp-green);
filter: drop-shadow(0 0 24px rgba(34,197,94,0.28));
}
.lp-news-big-figure .subnum {
font-family: 'Geist Mono', monospace;
font-size: 11.5px;
color: var(--lp-ink-3);
letter-spacing: 0.05em;
text-transform: uppercase;
margin-top: 8px;
line-height: 1.5;
}
.lp-news-big-body {
flex: 1;
padding: 30px 36px 28px;
display: flex;
flex-direction: column;
justify-content: center;
gap: 14px;
min-width: 0;
}
.lp-news-big-body .lp-news-headline {
font-size: clamp(20px, 2.1vw, 26px);
line-height: 1.22;
letter-spacing: -0.02em;
font-weight: 600;
}
.lp-news-big-body .lp-news-head {
font-size: 10.5px;
}
@media (max-width: 760px) {
.lp-news-big { flex-direction: column; }
.lp-news-big-figure {
flex: none;
border-right: none;
border-bottom: 1px solid rgba(255,255,255,0.08);
padding: 26px 24px 22px;
}
.lp-news-big-body { padding: 22px 24px 24px; }
}
.lp-press-note {
margin-top: 18px;
text-align: center;
font-size: 12px;
color: var(--lp-ink-4);
font-family: 'Geist Mono', monospace;
}
/* ---------- Small ---------- */
@media (max-width: 560px) {
.lp-section { padding: 80px 0; }
.lp-demo-inner { padding: 24px 20px; }
.lp-term-quote { font-size: 14px; }
.lp-term-row { padding: 12px 16px; }
.lp-term-row.new::before { display: none; }
.lp-news-big .lp-news-headline { font-size: 19px; }
}
/* ===== Mobile polish (≤720px / ≤480px) ===== */
@media (max-width: 720px) {
.lp-wrap { padding: 0 16px; }
.lp-nav-inner { padding: 10px 16px; }
.lp-logo { font-size: 14px; }
.lp-nav-cta { padding: 7px 12px; font-size: 12px; }
.lp-hero {
min-height: auto;
padding: 44px 0 52px;
}
.lp-h1 {
font-size: clamp(28px, 8.0vw, 52px);
margin-bottom: 16px;
}
.lp-sub { margin-bottom: 24px; font-size: 14px; }
.lp-live-badge {
font-size: 10px;
padding: 6px 10px 6px 8px;
margin-bottom: 20px;
max-width: 92%;
text-align: center;
}
.lp-btn { padding: 13px 20px; font-size: 14px; }
.lp-ctas { gap: 10px; }
.lp-ticker { margin-top: 40px; padding: 12px 0; }
.lp-ticker-track { gap: 24px; }
.lp-ticker-item { font-size: 11px; }
.lp-section { padding: 52px 0; }
.lp-h2 { font-size: clamp(22px, 6.0vw, 38px); }
.lp-lead { font-size: 14px; }
.lp-eyebrow { font-size: 10px; }
/* Terminal */
.lp-term { border-radius: 14px; }
.lp-term-head {
padding: 10px 12px;
font-size: 10px;
gap: 6px;
flex-wrap: wrap;
}
.lp-term-head .sep { display: none; }
.lp-term-body { padding: 6px; }
.lp-term-row { padding: 12px 12px; }
.lp-term-meta { font-size: 10.5px; flex-wrap: wrap; gap: 4px; }
.lp-term-quote { font-size: 13.5px; line-height: 1.5; }
.lp-term-verdict { gap: 6px; flex-wrap: wrap; font-size: 10.5px; }
.lp-term-verdict .seg { padding: 4px 8px; }
.lp-term-verdict .bar { width: 48px; }
.lp-term-foot { padding: 10px 12px; font-size: 10px; flex-wrap: wrap; gap: 6px; }
/* Press */
.lp-press { grid-template-columns: 1fr; gap: 12px; }
.lp-news { padding: 18px 16px; }
.lp-news-big { min-height: 0; }
.lp-news-big-figure { padding: 22px 18px 18px; }
.lp-news-big-body { padding: 18px 18px 20px; }
.lp-news-big-figure .num { font-size: clamp(34px, 10vw, 52px); }
.lp-news-headline { font-size: 16px; line-height: 1.4; }
/* Why / stats */
.lp-why { grid-template-columns: 1fr; gap: 12px; }
.lp-stats { grid-template-columns: 1fr 1fr; gap: 12px; }
.lp-stat { padding: 18px 14px; }
.lp-stat-val { font-size: 28px; }
/* Final CTA */
.lp-cta-final { padding: 56px 0 64px; }
}
@media (max-width: 420px) {
.lp-wrap { padding: 0 14px; }
.lp-h1 { font-size: clamp(26px, 9.2vw, 44px); letter-spacing: -0.02em; }
.lp-logo span:last-child { display: none; } /* keep only dot + α */
.lp-ticker-track { gap: 18px; }
.lp-btn { width: 100%; justify-content: center; }
.lp-ctas { flex-direction: column; width: 100%; }
.lp-stats { grid-template-columns: 1fr; }
.lp-press-note { font-size: 11px; }
}
/* Prevent horizontal scroll anywhere on the landing root */
.lp-root { overflow-x: hidden; }
.lp-root img, .lp-root video { max-width: 100%; height: auto; }
/* ============================================================
✨ Premium fx layer (cursor spotlight, noise, scanlines, 3D
tilt cards, scramble text, magnetic buttons, count-up stats)
Added later — appended so existing rules win on conflict.
============================================================ */
/* ── Defaults so layouts don't jump before JS sets the vars ── */
.lp-root {
--mx: 50vw;
--my: 50vh;
}
/* ── 1. Cursor-tracking radial spotlight ──────────────────── */
.lp-spotlight {
position: fixed; inset: 0;
z-index: 0;
pointer-events: none;
background: radial-gradient(
600px circle at var(--mx) var(--my),
rgba(245,165,36,0.10),
rgba(245,165,36,0.04) 30%,
transparent 60%
);
mix-blend-mode: screen;
transition: background 80ms linear;
}
/* ── 2. Film grain (SVG noise data URI, tiny, no asset needed) ── */
.lp-noise {
position: fixed; inset: 0;
z-index: 0;
pointer-events: none;
opacity: 0.06;
mix-blend-mode: overlay;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .8 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
background-size: 160px 160px;
animation: lp-noise-shift 5s steps(8) infinite;
}
@keyframes lp-noise-shift {
0% { transform: translate(0,0); }
20% { transform: translate(-5%, 3%); }
40% { transform: translate(3%, -5%); }
60% { transform: translate(-3%, -3%); }
80% { transform: translate(5%, 4%); }
100% { transform: translate(0,0); }
}
/* ── 3. CRT scanlines (very subtle) ───────────────────────── */
.lp-scanlines {
position: fixed; inset: 0;
z-index: 0;
pointer-events: none;
opacity: 0.04;
background: repeating-linear-gradient(
to bottom,
transparent 0,
transparent 2px,
rgba(255,255,255,0.4) 3px,
transparent 4px
);
mix-blend-mode: overlay;
}
/* ── 4. Scramble / decode text ─────────────────────────────── */
.lp-decode-line {
display: inline-block;
/* Use tabular nums + a slightly narrower spacing while scrambling so
the heading doesn't reflow as random glyphs swap. */
font-variant-numeric: tabular-nums;
font-feature-settings: 'tnum' 1;
/* Soft glow on decoded text */
text-shadow: 0 0 22px rgba(245,165,36,0.12);
}
.lp-decode-line.grad {
text-shadow: none; /* gradient text can't take text-shadow cleanly */
}
/* ── 5. Magnetic button wrapper — DISABLED ─────────────────────
The .lp-magnet class is no longer applied to any element (see app/page.tsx
hero CTA). Rules kept commented for reference in case the effect is
reinstated later, but they should NOT match anything in production. */
/*
.lp-magnet { will-change: transform; }
.lp-btn-inner {
display: inline-flex; align-items: center; gap: 10px;
transition: transform 0.18s ease;
}
.lp-magnet:hover .lp-btn-inner { transform: translateY(-1px); }
.lp-magnet.lp-btn-primary:hover { transform: none !important; }
.lp-magnet.lp-btn-primary { transition: box-shadow 0.18s ease; }
.lp-magnet.lp-btn-primary:hover {
box-shadow: 0 18px 60px rgba(245,165,36,0.6);
}
*/
/* ── Engine chips — 6-signal breadth strip ─────────────────── */
.lp-engine-chips {
display: flex; flex-wrap: wrap; gap: 6px;
margin-top: 18px;
animation: lp-fade-up 0.9s 0.55s ease both;
}
.lp-engine-chip {
font-size: 11px; font-weight: 700;
padding: 5px 11px; border-radius: 6px;
font-family: 'Geist Mono', monospace;
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); }
.lp-engine-chip.kol { color: var(--lp-violet); background: rgba(167,139,250,0.10); border-color: rgba(167,139,250,0.28); }
.lp-engine-chip.tvt { color: var(--lp-red); background: rgba(244,63,63,0.09); border-color: rgba(244,63,63,0.25); }
.lp-engine-chip.fund { color: #60c8f5; background: rgba(96,200,245,0.09); border-color: rgba(96,200,245,0.25); }
.lp-engine-chip.auto { color: var(--lp-ink-2); background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.13); }
/* ── Live feed (X-timeline style, hero right column) ───────── */
.lp-livefeed {
background: rgba(8,8,8,0.85);
border: 1px solid var(--lp-line-2);
border-radius: 14px;
overflow: hidden;
backdrop-filter: blur(24px);
box-shadow:
0 40px 100px rgba(0,0,0,0.7),
0 0 0 1px rgba(255,255,255,0.04),
inset 0 1px 0 rgba(255,255,255,0.04);
animation: lp-fade-up 1s 0.5s ease both;
}
.lp-livefeed-head {
display: flex; align-items: center; gap: 8px;
padding: 12px 16px;
border-bottom: 1px solid rgba(255,255,255,0.07);
font-size: 10px; font-weight: 700;
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%;
background: var(--lp-green);
box-shadow: 0 0 8px var(--lp-green);
animation: lp-ping 1.4s infinite;
flex-shrink: 0;
}
.lp-livefeed-count {
margin-left: auto;
font-size: 10px;
color: var(--lp-ink-4);
font-family: 'Geist Mono', monospace;
}
.lp-signal-post {
padding: 13px 16px;
border-bottom: 1px solid rgba(255,255,255,0.05);
transition: background 0.15s;
cursor: default;
}
.lp-signal-post:last-child { border-bottom: none; }
.lp-signal-post.is-new {
background: rgba(245,165,36,0.04);
border-left: 2px solid var(--lp-amber);
padding-left: 14px;
}
.lp-signal-post:hover { background: rgba(255,255,255,0.025); }
.lp-signal-post-head {
display: flex; align-items: center; gap: 6px;
margin-bottom: 6px;
}
.lp-signal-handle {
font-size: 13px; font-weight: 700;
color: var(--lp-ink);
}
.lp-signal-at { font-size: 12px; color: var(--lp-ink-4); }
.lp-signal-ts { font-size: 11px; color: var(--lp-ink-4); margin-left: auto; font-family: 'Geist Mono', monospace; }
.lp-signal-new-badge {
margin-left: 4px;
font-size: 9px; font-weight: 700;
padding: 1px 6px; border-radius: 3px;
background: var(--lp-amber);
color: #060605;
letter-spacing: 0.08em;
text-transform: uppercase;
animation: lp-pulse-soft 1.8s ease-in-out infinite;
}
.lp-signal-text {
font-size: 13.5px; line-height: 1.4;
color: var(--lp-ink-2);
margin: 0 0 9px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.lp-signal-chips {
display: flex; gap: 5px; flex-wrap: wrap; align-items: center;
}
.lp-signal-chip {
font-size: 10px; font-weight: 700;
padding: 3px 8px; border-radius: 4px;
font-family: 'Geist Mono', monospace;
letter-spacing: 0.05em;
border: 1px solid transparent;
}
.lp-signal-chip.long { background: rgba(31,219,99,0.15); color: var(--lp-green); border-color: rgba(31,219,99,0.30); }
.lp-signal-chip.short { background: rgba(244,63,63,0.15); color: var(--lp-red); border-color: rgba(244,63,63,0.30); }
.lp-signal-chip.noise { background: rgba(255,255,255,0.05); color: var(--lp-ink-4); border-color: rgba(255,255,255,0.08); }
.lp-signal-chip.asset { background: rgba(245,165,36,0.15); color: var(--lp-amber); border-color: rgba(245,165,36,0.30); }
.lp-signal-chip.conf { background: rgba(167,139,250,0.12); color: var(--lp-violet); border-color: rgba(167,139,250,0.25); }
.lp-signal-chip.action-ok { color: var(--lp-green); background: transparent; border: none; padding-left: 0; font-weight: 500; font-size: 11px; }
.lp-signal-chip.action-skip { color: var(--lp-ink-4); background: transparent; border: none; padding-left: 0; font-weight: 500; font-size: 11px; }
/* ── 6. Hero stats (counter strip) ────────────────────────── */
.lp-herostats {
margin: 32px 0 0;
display: inline-flex; align-items: stretch; gap: 24px;
padding: 14px 20px;
border: 1px solid var(--lp-line);
border-radius: 16px;
background:
linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01)),
rgba(10,9,7,0.55);
backdrop-filter: blur(10px);
box-shadow:
0 30px 80px rgba(0,0,0,0.4),
inset 0 1px 0 rgba(255,255,255,0.04);
font-family: 'Geist Mono', ui-monospace, monospace;
}
.lp-herostat { text-align: center; }
.lp-herostat-val {
font-size: clamp(22px, 3vw, 30px);
font-weight: 700;
color: var(--lp-ink);
line-height: 1;
letter-spacing: -0.02em;
display: inline-flex; align-items: baseline;
}
.lp-herostat-val .suf {
font-size: 0.6em;
color: var(--lp-amber);
margin-left: 1px;
}
.lp-herostat-val .dollar {
font-size: 0.7em;
color: var(--lp-amber);
margin-right: 1px;
}
.lp-herostat-lbl {
font-size: 10px;
color: var(--lp-ink-4);
margin-top: 6px;
letter-spacing: 0.1em;
text-transform: uppercase;
}
.lp-herostat-sep {
width: 1px;
background: linear-gradient(180deg, transparent, var(--lp-line), transparent);
align-self: stretch;
}
@media (max-width: 960px) {
.lp-herostats { align-self: center; }
}
@media (max-width: 560px) {
.lp-herostats { gap: 16px; padding: 14px 18px; }
}
/* ── 7. PILLAR CARDS — 3D tilt + spotlight + animated edge ── */
.lp-pillar {
--tilt-x: 0deg;
--tilt-y: 0deg;
--glow-x: 50%;
--glow-y: 50%;
position: relative;
display: flex; flex-direction: column;
text-decoration: none;
color: inherit;
padding: 0;
background: transparent;
border: none;
border-radius: 20px;
transform-style: preserve-3d;
transform: perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
transition: transform 0.18s cubic-bezier(.2,.8,.2,1);
cursor: pointer;
isolation: isolate;
}
.lp-pillar:hover { transition: transform 0.05s linear; }
/* solid body sits inside, separated from edge layer */
.lp-pillar-body {
position: relative;
z-index: 2;
display: flex; flex-direction: column; gap: 14px;
padding: 28px 26px;
background: linear-gradient(180deg, rgba(20,18,14,0.92), rgba(10,9,7,0.92));
border-radius: 18px;
border: 1px solid var(--lp-line);
height: 100%;
transform: translateZ(0); /* establish 3D layer */
}
.lp-pillar:hover .lp-pillar-body {
border-color: rgba(245,165,36,0.35);
}
/* spotlight inside the card — radial gradient driven by --glow-x/y */
.lp-pillar-glow {
position: absolute;
inset: 0;
z-index: 3;
border-radius: 18px;
pointer-events: none;
opacity: 0;
transition: opacity 0.25s ease;
background: radial-gradient(
400px circle at var(--glow-x) var(--glow-y),
rgba(245,165,36,0.18),
transparent 50%
);
mix-blend-mode: screen;
}
.lp-pillar:hover .lp-pillar-glow { opacity: 1; }
/* animated conic-gradient edge — rotates on hover */
.lp-pillar-edge {
position: absolute;
inset: -1px;
z-index: 1;
border-radius: 19px;
padding: 1px;
background: conic-gradient(
from var(--edge-angle, 0deg),
rgba(245,165,36,0.0),
rgba(245,165,36,0.45),
rgba(167,139,250,0.45),
rgba(239,68,68,0.4),
rgba(245,165,36,0.0)
);
-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.3s ease;
animation: lp-edge-spin 4s linear infinite paused;
}
.lp-pillar:hover .lp-pillar-edge {
opacity: 1;
animation-play-state: running;
}
@property --edge-angle {
syntax: '<angle>';
inherits: false;
initial-value: 0deg;
}
@keyframes lp-edge-spin {
to { --edge-angle: 360deg; }
}
/* typography inside pillar */
.lp-pillar-tag {
align-self: flex-start;
font-size: 10px; font-weight: 700;
letter-spacing: 0.08em; text-transform: uppercase;
padding: 4px 8px; border-radius: 999px;
background: rgba(245,165,36,0.12);
color: var(--lp-amber);
font-family: 'Geist Mono', ui-monospace, monospace;
}
.lp-pillar-title {
font-size: 18px; font-weight: 700;
margin: 0; line-height: 1.25;
color: var(--lp-ink);
}
.lp-pillar-desc {
font-size: 14px; line-height: 1.6;
color: var(--lp-ink-3);
margin: 0; flex: 1;
}
.lp-pillar-foot {
display: flex; align-items: baseline; gap: 8px; margin-top: 4px;
padding-top: 12px; border-top: 1px solid var(--lp-line);
}
.lp-pillar-metric {
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);
font-family: 'Geist Mono', ui-monospace, monospace;
}
.lp-pillar-arrow {
margin-left: auto; font-size: 16px; color: var(--lp-amber);
transition: transform 0.2s ease;
}
.lp-pillar:hover .lp-pillar-arrow { transform: translateX(4px); }
/* 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 ──────────────────────────────────────────────── */
.lp-faq {
max-width: 720px;
margin-top: 32px;
display: flex;
flex-direction: column;
gap: 2px;
}
.lp-faq-item {
border: 1px solid var(--lp-line);
border-radius: 10px;
overflow: hidden;
background: var(--lp-surface);
transition: border-color 0.2s;
}
.lp-faq-item:hover {
border-color: rgba(245,165,36,0.28);
}
.lp-faq-q {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
padding: 18px 20px;
background: none;
border: none;
color: var(--lp-ink-2);
font-size: 14px;
font-weight: 600;
text-align: left;
cursor: pointer;
transition: color 0.2s;
line-height: 1.4;
}
.lp-faq-q:hover,
.lp-faq-q.open { color: var(--lp-ink); }
.lp-faq-chevron {
flex-shrink: 0;
font-size: 20px;
color: var(--lp-amber);
font-family: 'Geist Mono', monospace;
line-height: 1;
transition: transform 0.2s;
}
.lp-faq-a {
padding: 0 20px 18px;
border-top: 1px solid var(--lp-line);
}
.lp-faq-a p {
margin: 14px 0 0;
font-size: 13px;
line-height: 1.65;
color: var(--lp-ink-3);
}
/* ── Comparison table ────────────────────────────────── */
.lp-compare-wrap {
margin-top: 32px;
overflow-x: auto;
border-radius: 12px;
border: 1px solid var(--lp-line-2);
}
.lp-compare {
width: 100%;
border-collapse: collapse;
font-size: 13px;
min-width: 540px;
}
.lp-compare thead tr {
background: rgba(255,255,255,0.04);
border-bottom: 1px solid var(--lp-line-2);
}
.lp-compare th {
padding: 14px 18px;
text-align: left;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.07em;
text-transform: uppercase;
color: var(--lp-ink-3);
font-family: 'Geist Mono', monospace;
white-space: nowrap;
}
.lp-compare th.lp-compare-us {
color: var(--lp-amber);
background: rgba(245,165,36,0.06);
}
.lp-compare tbody tr {
border-bottom: 1px solid var(--lp-line);
transition: background 0.15s;
}
.lp-compare tbody tr:last-child { border-bottom: none; }
.lp-compare tbody tr:hover { background: rgba(255,255,255,0.025); }
.lp-compare-feature {
padding: 13px 18px;
color: var(--lp-ink-2);
font-weight: 500;
}
.lp-compare-val {
padding: 13px 18px;
font-family: 'Geist Mono', monospace;
font-size: 12px;
white-space: nowrap;
}
td.lp-compare-us {
color: var(--lp-amber);
background: rgba(245,165,36,0.04);
font-weight: 600;
}
.lp-compare-muted { color: var(--lp-ink-4); }