feat: Mobile-optimized + left-aligned public pages (acquire, discover, yield, pricing, landing)
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled

This commit is contained in:
2025-12-13 17:46:07 +01:00
parent 4a1ebf0024
commit 26daad68cf
16 changed files with 845 additions and 962 deletions

View File

@ -288,20 +288,20 @@ export default function MarketPage() {
<Header /> <Header />
<main className="relative pt-32 sm:pt-40 pb-20 sm:pb-28 px-4 sm:px-6 flex-1"> <main className="relative pt-20 sm:pt-32 pb-16 sm:pb-24 px-4 sm:px-6 flex-1">
<div className="max-w-[1400px] mx-auto"> <div className="max-w-[1400px] mx-auto">
{/* Hero Header - High Tech */} {/* Hero Header - High Tech */}
<div className="mb-16 sm:mb-20 animate-fade-in text-center lg:text-left"> <div className="mb-12 sm:mb-16 animate-fade-in text-left">
<div className="flex flex-col lg:flex-row justify-between items-end gap-8 border-b border-white/[0.08] pb-12"> <div className="flex flex-col lg:flex-row justify-between items-end gap-8 border-b border-white/[0.08] pb-12">
<div> <div>
<span className="text-accent font-mono text-xs uppercase tracking-[0.2em] mb-4 block flex items-center gap-2 justify-center lg:justify-start"> <span className="text-accent font-mono text-[10px] sm:text-xs uppercase tracking-[0.2em] mb-3 sm:mb-4 block flex items-center gap-2">
<div className="w-1.5 h-1.5 bg-accent animate-pulse" /> <div className="w-1.5 h-1.5 bg-accent animate-pulse" />
Live Liquidity Pool Live Liquidity Pool
</span> </span>
<h1 className="font-display text-[3.5rem] sm:text-[5rem] md:text-[6rem] lg:text-[7rem] leading-[0.9] tracking-[-0.04em] text-white"> <h1 className="font-display text-[2.5rem] sm:text-[4rem] md:text-[5rem] lg:text-[6rem] leading-[0.9] tracking-[-0.03em] text-white">
Acquire Assets. Acquire Assets.
</h1> </h1>
<p className="mt-8 text-lg sm:text-xl text-white/50 max-w-2xl font-light leading-relaxed mx-auto lg:mx-0"> <p className="mt-5 sm:mt-8 text-sm sm:text-lg lg:text-xl text-white/50 max-w-2xl font-light leading-relaxed">
Global liquidity pool. Verified assets only. Global liquidity pool. Verified assets only.
<span className="block mt-2 text-white/80">Aggregated from GoDaddy, Sedo, and Pounce Direct.</span> <span className="block mt-2 text-white/80">Aggregated from GoDaddy, Sedo, and Pounce Direct.</span>
</p> </p>

View File

@ -147,23 +147,23 @@ export default function DiscoverPage() {
<Header /> <Header />
<main className="relative pt-32 sm:pt-40 pb-20 sm:pb-28 px-4 sm:px-6 flex-1"> <main className="relative pt-20 sm:pt-32 pb-16 sm:pb-24 px-4 sm:px-6 flex-1">
<div className="max-w-[1400px] mx-auto"> <div className="max-w-[1400px] mx-auto">
{/* Header Section - Matched with Acquire */} {/* Header Section */}
<div className="mb-16 sm:mb-20 animate-fade-in text-center lg:text-left"> <div className="mb-12 sm:mb-16 animate-fade-in text-left">
<div className="flex flex-col lg:flex-row justify-between items-end gap-8 border-b border-white/[0.08] pb-12"> <div className="flex flex-col lg:flex-row justify-between items-end gap-6 sm:gap-8 border-b border-white/[0.08] pb-8 sm:pb-12">
<div> <div>
<span className="text-accent font-mono text-xs uppercase tracking-[0.2em] mb-4 block flex items-center gap-2 justify-center lg:justify-start"> <span className="text-accent font-mono text-[10px] sm:text-xs uppercase tracking-[0.2em] mb-3 sm:mb-4 block flex items-center gap-2">
<div className="w-1.5 h-1.5 bg-accent animate-pulse" /> <div className="w-1.5 h-1.5 bg-accent animate-pulse" />
Global Intelligence Global Intelligence
</span> </span>
<h1 className="font-display text-[3.5rem] sm:text-[5rem] md:text-[6rem] lg:text-[7rem] leading-[0.9] tracking-[-0.04em] text-white"> <h1 className="font-display text-[2.5rem] sm:text-[4rem] md:text-[5rem] lg:text-[6rem] leading-[0.9] tracking-[-0.03em] text-white">
Market Pulse. Market Pulse.
</h1> </h1>
<p className="mt-8 text-lg sm:text-xl text-white/50 max-w-2xl font-light leading-relaxed mx-auto lg:mx-0"> <p className="mt-5 sm:mt-8 text-sm sm:text-lg lg:text-xl text-white/50 max-w-2xl font-light leading-relaxed">
Real-time inflation monitor. Track pricing, renewal risks, and breakout trends. Real-time inflation monitor. Track pricing and breakout trends.
<span className="block mt-2 text-white/80">Aggregated intelligence across 886+ TLDs.</span> <span className="block mt-2 text-white/80">886+ TLDs monitored.</span>
</p> </p>
</div> </div>
@ -182,7 +182,7 @@ export default function DiscoverPage() {
{/* Top Movers Cards */} {/* Top Movers Cards */}
{topGainer && topVolume && highRisk && ( {topGainer && topVolume && highRisk && (
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 mb-16 animate-fade-in"> <div className="grid grid-cols-1 sm:grid-cols-3 gap-4 sm:gap-6 mb-10 sm:mb-16 animate-fade-in">
<StatCard <StatCard
label="Top Gainer (7d)" label="Top Gainer (7d)"
value={`.${topGainer.tld.toUpperCase()}`} value={`.${topGainer.tld.toUpperCase()}`}

View File

@ -142,7 +142,7 @@ export default function HomePage() {
<div className="grid lg:grid-cols-12 gap-8 lg:gap-24 items-center"> <div className="grid lg:grid-cols-12 gap-8 lg:gap-24 items-center">
{/* Left: Typography & Brand */} {/* Left: Typography & Brand */}
<div className="lg:col-span-7 relative z-20 text-center lg:text-left"> <div className="lg:col-span-7 relative z-20 text-left">
{/* Brand Seal - Mobile */} {/* Brand Seal - Mobile */}
<div className="inline-flex items-center gap-3 mb-6 sm:mb-10 animate-fade-in opacity-0" style={{ animationDelay: '0.1s', animationFillMode: 'forwards' }}> <div className="inline-flex items-center gap-3 mb-6 sm:mb-10 animate-fade-in opacity-0" style={{ animationDelay: '0.1s', animationFillMode: 'forwards' }}>
<div className="relative w-10 h-10 sm:w-16 sm:h-16"> <div className="relative w-10 h-10 sm:w-16 sm:h-16">
@ -187,7 +187,7 @@ export default function HomePage() {
{ value: '10s', label: 'Latency' }, { value: '10s', label: 'Latency' },
{ value: '$1B+', label: 'Assets Tracked' }, { value: '$1B+', label: 'Assets Tracked' },
].map((stat, i) => ( ].map((stat, i) => (
<div key={i} className="text-center sm:text-left"> <div key={i} className="text-left">
<div className="text-xl sm:text-2xl font-display text-white mb-1">{stat.value}</div> <div className="text-xl sm:text-2xl font-display text-white mb-1">{stat.value}</div>
<div className="text-[9px] sm:text-[10px] uppercase tracking-widest text-white/40 font-mono">{stat.label}</div> <div className="text-[9px] sm:text-[10px] uppercase tracking-widest text-white/40 font-mono">{stat.label}</div>
</div> </div>

View File

@ -175,7 +175,7 @@ export default function PricingPage() {
<Header /> <Header />
<main className="flex-1 relative pt-32 sm:pt-40 pb-20 sm:pb-28 px-4 sm:px-6"> <main className="flex-1 relative pt-20 sm:pt-32 pb-16 sm:pb-24 px-4 sm:px-6">
<div className="max-w-6xl mx-auto"> <div className="max-w-6xl mx-auto">
{/* Cancelled Banner */} {/* Cancelled Banner */}
{showCancelledBanner && ( {showCancelledBanner && (
@ -198,28 +198,28 @@ export default function PricingPage() {
)} )}
{/* Hero */} {/* Hero */}
<div className="text-center mb-16 sm:mb-20 animate-fade-in"> <div className="text-left mb-12 sm:mb-16 animate-fade-in">
<span className="text-accent font-mono text-xs uppercase tracking-[0.2em] mb-4 block flex items-center justify-center gap-2"> <span className="text-accent font-mono text-[10px] sm:text-xs uppercase tracking-[0.2em] mb-3 sm:mb-4 block flex items-center gap-2">
<div className="w-1.5 h-1.5 bg-accent animate-pulse" /> <div className="w-1.5 h-1.5 bg-accent animate-pulse" />
Clearance Levels Clearance Levels
</span> </span>
<h1 className="font-display text-[3.5rem] sm:text-[5rem] md:text-[6rem] lg:text-[7rem] leading-[0.9] tracking-[-0.04em] text-white"> <h1 className="font-display text-[2.5rem] sm:text-[4rem] md:text-[5rem] lg:text-[6rem] leading-[0.9] tracking-[-0.03em] text-white">
Pick your weapon. Pick your weapon.
</h1> </h1>
<p className="mt-8 text-lg sm:text-xl text-white/50 max-w-xl mx-auto font-light leading-relaxed"> <p className="mt-5 sm:mt-8 text-sm sm:text-lg lg:text-xl text-white/50 max-w-xl font-light leading-relaxed">
Start free. Scale when you&apos;re ready. All plans include core features. Start free. Scale when you&apos;re ready.
</p> </p>
</div> </div>
{/* Pricing Cards - AWARD WINNING STYLE */} {/* Pricing Cards */}
<div className="grid md:grid-cols-3 gap-8 mb-24 animate-slide-up items-stretch"> <div className="grid grid-cols-1 md:grid-cols-3 gap-4 sm:gap-8 mb-16 sm:mb-24 animate-slide-up items-stretch">
{tiers.map((tier, index) => ( {tiers.map((tier, index) => (
<div <div
key={tier.id} key={tier.id}
className={clsx( className={clsx(
"group relative p-8 flex flex-col transition-all duration-500", "group relative p-6 sm:p-8 flex flex-col transition-all duration-500",
tier.highlighted tier.highlighted
? "bg-[#050505] border border-accent/50 shadow-[0_0_50px_-20px_rgba(16,185,129,0.2)] z-10 transform md:-translate-y-4" ? "bg-[#050505] border-2 border-accent shadow-[0_0_50px_-20px_rgba(16,185,129,0.2)] z-10 md:-translate-y-4"
: "bg-[#030303] border border-white/10 hover:border-white/20 hover:bg-[#050505]" : "bg-[#030303] border border-white/10 hover:border-white/20 hover:bg-[#050505]"
)} )}
style={{ animationDelay: `${index * 100}ms` }} style={{ animationDelay: `${index * 100}ms` }}
@ -244,23 +244,23 @@ export default function PricingPage() {
<div className="relative flex-1 flex flex-col"> <div className="relative flex-1 flex flex-col">
{/* Header */} {/* Header */}
<div className="mb-8 text-center pb-8 border-b border-white/10"> <div className="mb-6 sm:mb-8 text-left sm:text-center pb-6 sm:pb-8 border-b border-white/10">
<h3 className="text-2xl font-display text-white mb-4">{tier.name}</h3> <h3 className="text-xl sm:text-2xl font-display text-white mb-3 sm:mb-4">{tier.name}</h3>
<div className="flex items-baseline justify-center gap-1 mb-4"> <div className="flex items-baseline justify-start sm:justify-center gap-1 mb-3 sm:mb-4">
{tier.price === '0' ? ( {tier.price === '0' ? (
<span className="text-5xl font-mono text-white tracking-tight">Free</span> <span className="text-3xl sm:text-5xl font-mono text-white tracking-tight">Free</span>
) : ( ) : (
<> <>
<span className="text-5xl font-mono text-white tracking-tight">${tier.price}</span> <span className="text-3xl sm:text-5xl font-mono text-white tracking-tight">${tier.price}</span>
<span className="text-sm font-mono text-white/40">{tier.period}</span> <span className="text-xs sm:text-sm font-mono text-white/40">{tier.period}</span>
</> </>
)} )}
</div> </div>
<p className="text-sm text-white/50 font-mono">{tier.description}</p> <p className="text-xs sm:text-sm text-white/50 font-mono">{tier.description}</p>
</div> </div>
{/* Features */} {/* Features */}
<ul className="space-y-4 mb-10 flex-1"> <ul className="space-y-3 sm:space-y-4 mb-8 sm:mb-10 flex-1">
{tier.features.map((feature) => ( {tier.features.map((feature) => (
<li key={feature.text} className="flex items-start gap-3"> <li key={feature.text} className="flex items-start gap-3">
{feature.available ? ( {feature.available ? (
@ -319,8 +319,8 @@ export default function PricingPage() {
))} ))}
</div> </div>
{/* Comparison Table - TECH STYLE */} {/* Comparison Table */}
<div className="mb-24 border border-white/10 bg-[#050505]"> <div className="mb-16 sm:mb-24 border border-white/10 bg-[#050505] hidden sm:block">
<div className="px-8 py-6 border-b border-white/10 bg-white/[0.02]"> <div className="px-8 py-6 border-b border-white/10 bg-white/[0.02]">
<h2 className="text-xl font-display text-white">Spec Sheet</h2> <h2 className="text-xl font-display text-white">Spec Sheet</h2>
</div> </div>
@ -354,9 +354,9 @@ export default function PricingPage() {
</div> </div>
</div> </div>
{/* FAQ - TERMINAL STYLE */} {/* FAQ */}
<div className="max-w-3xl mx-auto"> <div className="max-w-3xl mx-auto lg:mx-0">
<h2 className="text-3xl font-display text-white text-center mb-12">Mission Support</h2> <h2 className="text-2xl sm:text-3xl font-display text-white text-left mb-8 sm:mb-12">Mission Support</h2>
<div className="space-y-4"> <div className="space-y-4">
{faqs.map((faq, i) => ( {faqs.map((faq, i) => (
<div <div

View File

@ -34,7 +34,8 @@ import {
Crown, Crown,
Zap, Zap,
Coins, Coins,
Tag Tag,
Briefcase
} from 'lucide-react' } from 'lucide-react'
import Link from 'next/link' import Link from 'next/link'
import Image from 'next/image' import Image from 'next/image'
@ -389,6 +390,7 @@ export default function TldDetailPage() {
title: 'Manage', title: 'Manage',
items: [ items: [
{ href: '/terminal/watchlist', label: 'Watchlist', icon: Eye }, { href: '/terminal/watchlist', label: 'Watchlist', icon: Eye },
{ href: '/terminal/portfolio', label: 'Portfolio', icon: Briefcase },
{ href: '/terminal/sniper', label: 'Sniper', icon: Target }, { href: '/terminal/sniper', label: 'Sniper', icon: Target },
] ]
}, },

View File

@ -34,7 +34,8 @@ import {
Coins, Coins,
Tag, Tag,
ChevronRight, ChevronRight,
Filter Filter,
Briefcase
} from 'lucide-react' } from 'lucide-react'
import clsx from 'clsx' import clsx from 'clsx'
import Link from 'next/link' import Link from 'next/link'
@ -255,6 +256,7 @@ export default function IntelPage() {
title: 'Manage', title: 'Manage',
items: [ items: [
{ href: '/terminal/watchlist', label: 'Watchlist', icon: Eye }, { href: '/terminal/watchlist', label: 'Watchlist', icon: Eye },
{ href: '/terminal/portfolio', label: 'Portfolio', icon: Briefcase },
{ href: '/terminal/sniper', label: 'Sniper', icon: Target }, { href: '/terminal/sniper', label: 'Sniper', icon: Target },
] ]
}, },

View File

@ -9,7 +9,7 @@ import {
Plus, Shield, Eye, ExternalLink, Loader2, Trash2, Plus, Shield, Eye, ExternalLink, Loader2, Trash2,
CheckCircle, AlertCircle, Copy, X, Tag, Sparkles, CheckCircle, AlertCircle, Copy, X, Tag, Sparkles,
TrendingUp, Gavel, Target, Menu, Settings, LogOut, Crown, Zap, Coins, TrendingUp, Gavel, Target, Menu, Settings, LogOut, Crown, Zap, Coins,
ArrowRight, RefreshCw, Globe, Lock ArrowRight, RefreshCw, Globe, Lock, Briefcase
} from 'lucide-react' } from 'lucide-react'
import Link from 'next/link' import Link from 'next/link'
import Image from 'next/image' import Image from 'next/image'
@ -124,6 +124,7 @@ export default function MyListingsPage() {
]}, ]},
{ title: 'Manage', items: [ { title: 'Manage', items: [
{ href: '/terminal/watchlist', label: 'Watchlist', icon: Eye }, { href: '/terminal/watchlist', label: 'Watchlist', icon: Eye },
{ href: '/terminal/portfolio', label: 'Portfolio', icon: Briefcase },
{ href: '/terminal/sniper', label: 'Sniper', icon: Target }, { href: '/terminal/sniper', label: 'Sniper', icon: Target },
]}, ]},
{ title: 'Monetize', items: [ { title: 'Monetize', items: [

View File

@ -33,7 +33,8 @@ import {
Sparkles, Sparkles,
Coins, Coins,
Tag, Tag,
Filter Filter,
Briefcase
} from 'lucide-react' } from 'lucide-react'
import clsx from 'clsx' import clsx from 'clsx'
import Link from 'next/link' import Link from 'next/link'
@ -319,6 +320,7 @@ export default function MarketPage() {
title: 'Manage', title: 'Manage',
items: [ items: [
{ href: '/terminal/watchlist', label: 'Watchlist', icon: Eye }, { href: '/terminal/watchlist', label: 'Watchlist', icon: Eye },
{ href: '/terminal/portfolio', label: 'Portfolio', icon: Briefcase },
{ href: '/terminal/sniper', label: 'Sniper', icon: Target }, { href: '/terminal/sniper', label: 'Sniper', icon: Target },
] ]
}, },

File diff suppressed because it is too large Load Diff

View File

@ -33,7 +33,8 @@ import {
Shield, Shield,
LogOut, LogOut,
Crown, Crown,
ExternalLink ExternalLink,
Briefcase
} from 'lucide-react' } from 'lucide-react'
import clsx from 'clsx' import clsx from 'clsx'
import Link from 'next/link' import Link from 'next/link'
@ -227,6 +228,7 @@ export default function RadarPage() {
title: 'Manage', title: 'Manage',
items: [ items: [
{ href: '/terminal/watchlist', label: 'Watchlist', icon: Eye }, { href: '/terminal/watchlist', label: 'Watchlist', icon: Eye },
{ href: '/terminal/portfolio', label: 'Portfolio', icon: Briefcase },
{ href: '/terminal/sniper', label: 'Sniper', icon: Target }, { href: '/terminal/sniper', label: 'Sniper', icon: Target },
] ]
}, },

View File

@ -36,6 +36,7 @@ import {
Tag, Tag,
Coins, Coins,
LogOut, LogOut,
Briefcase
} from 'lucide-react' } from 'lucide-react'
import Link from 'next/link' import Link from 'next/link'
import Image from 'next/image' import Image from 'next/image'
@ -246,6 +247,7 @@ export default function SettingsPage() {
]}, ]},
{ title: 'Manage', items: [ { title: 'Manage', items: [
{ href: '/terminal/watchlist', label: 'Watchlist', icon: Eye }, { href: '/terminal/watchlist', label: 'Watchlist', icon: Eye },
{ href: '/terminal/portfolio', label: 'Portfolio', icon: Briefcase },
{ href: '/terminal/sniper', label: 'Sniper', icon: Target }, { href: '/terminal/sniper', label: 'Sniper', icon: Target },
]}, ]},
{ title: 'Monetize', items: [ { title: 'Monetize', items: [

View File

@ -31,7 +31,8 @@ import {
LogOut, LogOut,
Sparkles, Sparkles,
Coins, Coins,
Tag Tag,
Briefcase
} from 'lucide-react' } from 'lucide-react'
import clsx from 'clsx' import clsx from 'clsx'
import Link from 'next/link' import Link from 'next/link'
@ -161,6 +162,7 @@ export default function SniperAlertsPage() {
]}, ]},
{ title: 'Manage', items: [ { title: 'Manage', items: [
{ href: '/terminal/watchlist', label: 'Watchlist', icon: Eye }, { href: '/terminal/watchlist', label: 'Watchlist', icon: Eye },
{ href: '/terminal/portfolio', label: 'Portfolio', icon: Briefcase },
{ href: '/terminal/sniper', label: 'Sniper', icon: Target, active: true }, { href: '/terminal/sniper', label: 'Sniper', icon: Target, active: true },
]}, ]},
{ title: 'Monetize', items: [ { title: 'Monetize', items: [

View File

@ -33,7 +33,8 @@ import {
Zap, Zap,
Search, Search,
ChevronUp, ChevronUp,
ChevronDown ChevronDown,
Briefcase
} from 'lucide-react' } from 'lucide-react'
import clsx from 'clsx' import clsx from 'clsx'
import Link from 'next/link' import Link from 'next/link'
@ -266,6 +267,7 @@ export default function WatchlistPage() {
title: 'Manage', title: 'Manage',
items: [ items: [
{ href: '/terminal/watchlist', label: 'Watchlist', icon: Eye }, { href: '/terminal/watchlist', label: 'Watchlist', icon: Eye },
{ href: '/terminal/portfolio', label: 'Portfolio', icon: Briefcase },
{ href: '/terminal/sniper', label: 'Sniper', icon: Target }, { href: '/terminal/sniper', label: 'Sniper', icon: Target },
] ]
}, },

View File

@ -5,7 +5,7 @@ import {
TrendingUp, DollarSign, Zap, Plus, CheckCircle2, Clock, AlertCircle, TrendingUp, DollarSign, Zap, Plus, CheckCircle2, Clock, AlertCircle,
MousePointer, Target, Wallet, RefreshCw, ChevronRight, Copy, Check, MousePointer, Target, Wallet, RefreshCw, ChevronRight, Copy, Check,
XCircle, Sparkles, Loader2, Eye, Gavel, Menu, Settings, Shield, LogOut, XCircle, Sparkles, Loader2, Eye, Gavel, Menu, Settings, Shield, LogOut,
Crown, Coins, Tag, X Crown, Coins, Tag, X, Briefcase
} from 'lucide-react' } from 'lucide-react'
import { api, YieldDomain, YieldTransaction } from '@/lib/api' import { api, YieldDomain, YieldTransaction } from '@/lib/api'
import { useStore } from '@/lib/store' import { useStore } from '@/lib/store'
@ -133,6 +133,7 @@ export default function YieldPage() {
]}, ]},
{ title: 'Manage', items: [ { title: 'Manage', items: [
{ href: '/terminal/watchlist', label: 'Watchlist', icon: Eye }, { href: '/terminal/watchlist', label: 'Watchlist', icon: Eye },
{ href: '/terminal/portfolio', label: 'Portfolio', icon: Briefcase },
{ href: '/terminal/sniper', label: 'Sniper', icon: Target }, { href: '/terminal/sniper', label: 'Sniper', icon: Target },
]}, ]},
{ title: 'Monetize', items: [ { title: 'Monetize', items: [

View File

@ -171,18 +171,18 @@ export default function YieldPage() {
<Header /> <Header />
{/* HERO SECTION */} {/* HERO SECTION */}
<section className="relative min-h-[90vh] flex flex-col justify-center pt-32 pb-24 px-4 sm:px-6 z-10"> <section className="relative min-h-[85vh] sm:min-h-[90vh] flex flex-col justify-center pt-20 sm:pt-32 pb-12 sm:pb-24 px-4 sm:px-6 z-10">
<div className="max-w-[1400px] mx-auto w-full"> <div className="max-w-[1400px] mx-auto w-full">
<div className="grid lg:grid-cols-12 gap-16 lg:gap-24 items-center"> <div className="grid lg:grid-cols-12 gap-8 lg:gap-24 items-center">
{/* Left: Typography */} {/* Left: Typography */}
<div className="lg:col-span-6 relative z-20 text-center lg:text-left"> <div className="lg:col-span-6 relative z-20 text-left">
<div className="inline-flex items-center gap-4 mb-10 animate-fade-in opacity-0" style={{ animationDelay: '0.1s', animationFillMode: 'forwards' }}> <div className="inline-flex items-center gap-3 sm:gap-4 mb-6 sm:mb-10 animate-fade-in opacity-0" style={{ animationDelay: '0.1s', animationFillMode: 'forwards' }}>
<div className="h-px w-12 bg-white/10" /> <div className="h-px w-6 sm:w-12 bg-white/10" />
<span className="text-[10px] font-mono uppercase tracking-[0.3em] text-accent">Pounce Protocol // Yield</span> <span className="text-[9px] sm:text-[10px] font-mono uppercase tracking-[0.2em] sm:tracking-[0.3em] text-accent">Pounce // Yield</span>
</div> </div>
<h1 className="font-display text-[3.5rem] sm:text-[5rem] md:text-[6rem] lg:text-[7rem] leading-[0.9] tracking-[-0.04em] text-white mb-8"> <h1 className="font-display text-[2.5rem] sm:text-[4rem] md:text-[5rem] lg:text-[6rem] leading-[0.9] tracking-[-0.03em] text-white mb-6 sm:mb-8">
<span className="block animate-slide-up opacity-0" style={{ animationDelay: '0.2s', animationFillMode: 'forwards' }}> <span className="block animate-slide-up opacity-0" style={{ animationDelay: '0.2s', animationFillMode: 'forwards' }}>
Assets that Assets that
</span> </span>
@ -192,11 +192,11 @@ export default function YieldPage() {
</h1> </h1>
<div className="animate-slide-up opacity-0" style={{ animationDelay: '0.8s', animationFillMode: 'forwards' }}> <div className="animate-slide-up opacity-0" style={{ animationDelay: '0.8s', animationFillMode: 'forwards' }}>
<p className="text-lg lg:text-xl text-white/60 max-w-xl font-light leading-relaxed mb-12 lg:mx-0 mx-auto"> <p className="text-sm sm:text-lg lg:text-xl text-white/60 max-w-xl font-light leading-relaxed mb-8 sm:mb-12">
Turn dormant domains into active cashflow. Our Intent Routing engine directs traffic to high-paying partners automatically. Turn dormant domains into active cashflow. Our Intent Routing engine directs traffic to high-paying partners.
</p> </p>
<div className="flex flex-col sm:flex-row items-center gap-6 lg:justify-start justify-center"> <div className="flex flex-col sm:flex-row items-start gap-4 sm:gap-6">
<Link <Link
href={isAuthenticated ? '/terminal/yield' : '/register'} href={isAuthenticated ? '/terminal/yield' : '/register'}
className="px-8 py-4 bg-accent text-black text-xs font-bold uppercase tracking-[0.2em] hover:bg-white transition-all shadow-[0_0_20px_rgba(16,185,129,0.2)]" className="px-8 py-4 bg-accent text-black text-xs font-bold uppercase tracking-[0.2em] hover:bg-white transition-all shadow-[0_0_20px_rgba(16,185,129,0.2)]"
@ -223,27 +223,27 @@ export default function YieldPage() {
</section> </section>
{/* CORE LOGIC */} {/* CORE LOGIC */}
<section id="how-it-works" className="relative py-40 px-4 sm:px-6 bg-[#020202]"> <section id="how-it-works" className="relative py-20 sm:py-40 px-4 sm:px-6 bg-[#020202]">
<div className="max-w-[1400px] mx-auto"> <div className="max-w-[1400px] mx-auto">
{/* Section Header - Tech Style */} {/* Section Header - Tech Style */}
<div className="flex flex-col lg:flex-row justify-between items-end mb-24 border-b border-white/[0.08] pb-12"> <div className="flex flex-col lg:flex-row justify-between items-start lg:items-end mb-12 sm:mb-24 border-b border-white/[0.08] pb-8 sm:pb-12">
<div> <div>
<span className="text-accent font-mono text-xs uppercase tracking-[0.2em] mb-4 block">The Mechanism</span> <span className="text-accent font-mono text-[10px] sm:text-xs uppercase tracking-[0.2em] mb-3 sm:mb-4 block">The Mechanism</span>
<h2 className="font-display text-4xl sm:text-5xl lg:text-6xl text-white leading-none"> <h2 className="font-display text-2xl sm:text-4xl lg:text-5xl text-white leading-none">
Intent Routing Intent Routing
</h2> </h2>
</div> </div>
<p className="text-white/50 max-w-md text-sm font-mono mt-8 lg:mt-0 leading-relaxed text-right"> <p className="hidden lg:block text-white/50 max-w-md text-sm font-mono mt-8 lg:mt-0 leading-relaxed lg:text-right">
// REPLACING_PARKING_PAGES<br /> // REPLACING_PARKING_PAGES<br />
// ELIMINATING_MIDDLEMEN<br /> // ELIMINATING_MIDDLEMEN<br />
// MAXIMIZING_YIELD // MAXIMIZING_YIELD
</p> </p>
</div> </div>
<div className="grid grid-cols-1 lg:grid-cols-3 gap-px bg-white/[0.08] border border-white/[0.08]"> <div className="grid grid-cols-1 lg:grid-cols-3 gap-4 lg:gap-px bg-transparent lg:bg-white/[0.08] lg:border lg:border-white/[0.08]">
{/* Phase 1 */} {/* Phase 1 */}
<div className="group relative bg-[#030303] p-10 lg:p-14 hover:bg-[#050505] transition-colors duration-500"> <div className="group relative bg-[#030303] p-6 sm:p-10 lg:p-14 hover:bg-[#050505] transition-colors duration-500 border border-white/[0.08] lg:border-0">
<div className="absolute top-0 right-0 p-6 opacity-0 group-hover:opacity-100 transition-opacity duration-500"> <div className="absolute top-0 right-0 p-6 opacity-0 group-hover:opacity-100 transition-opacity duration-500">
<div className="text-[10px] font-mono text-accent">PHASE_01</div> <div className="text-[10px] font-mono text-accent">PHASE_01</div>
</div> </div>

View File

@ -22,6 +22,7 @@ import {
Target, Target,
Coins, Coins,
Radar, Radar,
Briefcase,
} from 'lucide-react' } from 'lucide-react'
import { useState, useEffect } from 'react' import { useState, useEffect } from 'react'
import clsx from 'clsx' import clsx from 'clsx'
@ -100,6 +101,12 @@ export function Sidebar({ collapsed: controlledCollapsed, onCollapsedChange }: S
icon: Eye, icon: Eye,
badge: availableCount || null, badge: availableCount || null,
}, },
{
href: '/terminal/portfolio',
label: 'PORTFOLIO',
icon: Briefcase,
badge: null,
},
{ {
href: '/terminal/sniper', href: '/terminal/sniper',
label: 'SNIPER', label: 'SNIPER',