3312 lines
58 KiB
CSS
3312 lines
58 KiB
CSS
/* Custom variables - Professional black/white with pastel highlights */
|
|
:root {
|
|
/* Core colors */
|
|
--black: #000000;
|
|
--white: #ffffff;
|
|
--gray-50: #f8fafc;
|
|
--gray-100: #f1f5f9;
|
|
--gray-200: #e2e8f0;
|
|
--gray-300: #cbd5e1;
|
|
--gray-400: #94a3b8;
|
|
--gray-500: #64748b;
|
|
--gray-600: #475569;
|
|
--gray-700: #334155;
|
|
--gray-800: #1e293b;
|
|
--gray-900: #0f172a;
|
|
|
|
/* Pastel highlights */
|
|
--pastel-blue: #a7f3d0;
|
|
--pastel-purple: #c4b5fd;
|
|
--pastel-pink: #fbb6ce;
|
|
--pastel-yellow: #fde68a;
|
|
--pastel-green: #86efac;
|
|
--pastel-orange: #fed7aa;
|
|
|
|
/* Accent colors */
|
|
--accent-primary: #3b82f6;
|
|
--accent-secondary: #8b5cf6;
|
|
--accent-success: #10b981;
|
|
--accent-warning: #f59e0b;
|
|
--accent-danger: #ef4444;
|
|
|
|
/* Theme colors */
|
|
--bg-primary: var(--black);
|
|
--bg-secondary: var(--gray-900);
|
|
--bg-tertiary: var(--gray-800);
|
|
--text-primary: var(--white);
|
|
--text-secondary: var(--gray-300);
|
|
--text-muted: var(--gray-400);
|
|
--border-color: var(--gray-700);
|
|
--border-light: var(--gray-600);
|
|
}
|
|
|
|
/* Global styles */
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
background-color: var(--bg-primary);
|
|
color: var(--text-primary);
|
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
line-height: 1.6;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
/* Custom scrollbar */
|
|
::-webkit-scrollbar {
|
|
width: 6px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: var(--bg-primary);
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: var(--border-color);
|
|
border-radius: 3px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: var(--pastel-blue);
|
|
}
|
|
|
|
/* Typography */
|
|
h1, h2, h3, h4, h5, h6 {
|
|
font-weight: 600;
|
|
line-height: 1.2;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.display-1 { font-size: 5rem; font-weight: 700; }
|
|
.display-2 { font-size: 4.5rem; font-weight: 700; }
|
|
.display-3 { font-size: 4rem; font-weight: 700; }
|
|
.display-4 { font-size: 3.5rem; font-weight: 700; }
|
|
|
|
/* Header styles */
|
|
.navbar {
|
|
background: rgba(0, 0, 0, 0.95) !important;
|
|
backdrop-filter: blur(20px);
|
|
border-bottom: 1px solid var(--border-color);
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
z-index: 1000;
|
|
}
|
|
|
|
.navbar.scrolled {
|
|
background: rgba(0, 0, 0, 0.98) !important;
|
|
backdrop-filter: blur(30px);
|
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
.navbar-brand {
|
|
font-weight: 800;
|
|
font-size: 1.75rem;
|
|
color: var(--white) !important;
|
|
text-decoration: none;
|
|
position: relative;
|
|
}
|
|
|
|
.navbar-brand::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: -2px;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 2px;
|
|
background: linear-gradient(90deg, var(--pastel-blue), var(--pastel-purple));
|
|
border-radius: 1px;
|
|
}
|
|
|
|
.navbar-nav .nav-link {
|
|
color: var(--text-secondary) !important;
|
|
font-weight: 500;
|
|
font-size: 0.95rem;
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
position: relative;
|
|
margin: 0 1.5rem;
|
|
}
|
|
|
|
.navbar-nav .nav-link:hover {
|
|
color: var(--white) !important;
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.navbar-nav .nav-link::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: -8px;
|
|
left: 50%;
|
|
width: 0;
|
|
height: 2px;
|
|
background: var(--pastel-blue);
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
.navbar-nav .nav-link:hover::after {
|
|
width: 100%;
|
|
}
|
|
|
|
/* Button styles */
|
|
.btn {
|
|
border-radius: 12px;
|
|
font-weight: 600;
|
|
font-size: 0.95rem;
|
|
padding: 12px 28px;
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
border: none;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.btn::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: -100%;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
|
|
transition: left 0.5s;
|
|
}
|
|
|
|
.btn:hover::before {
|
|
left: 100%;
|
|
}
|
|
|
|
.btn-primary {
|
|
background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
|
|
color: var(--white);
|
|
box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3);
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 8px 25px rgba(59, 130, 246, 0.4);
|
|
color: var(--white);
|
|
}
|
|
|
|
.btn-outline-primary {
|
|
border: 2px solid var(--pastel-blue);
|
|
color: var(--pastel-blue);
|
|
background: transparent;
|
|
}
|
|
|
|
.btn-outline-primary:hover {
|
|
background: var(--pastel-blue);
|
|
color: var(--black);
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 8px 25px rgba(167, 243, 208, 0.3);
|
|
}
|
|
|
|
.btn-lg {
|
|
padding: 16px 36px;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
/* Hero section */
|
|
.hero-section {
|
|
min-height: 100vh;
|
|
background: var(--bg-primary);
|
|
position: relative;
|
|
overflow: hidden;
|
|
display: flex;
|
|
align-items: center;
|
|
padding-top: 80px;
|
|
}
|
|
|
|
.hero-section::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background:
|
|
radial-gradient(circle at 20% 30%, rgba(167, 243, 208, 0.05) 0%, transparent 50%),
|
|
radial-gradient(circle at 80% 70%, rgba(196, 181, 253, 0.05) 0%, transparent 50%),
|
|
radial-gradient(circle at 50% 50%, rgba(251, 182, 206, 0.03) 0%, transparent 50%);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.hero-section::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(255,255,255,0.02)" stroke-width="1"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
|
|
pointer-events: none;
|
|
}
|
|
|
|
.hero-content {
|
|
position: relative;
|
|
z-index: 2;
|
|
}
|
|
|
|
.hero-title {
|
|
font-size: clamp(3rem, 8vw, 6rem);
|
|
font-weight: 800;
|
|
color: var(--white);
|
|
margin-bottom: 1.5rem;
|
|
line-height: 1.1;
|
|
background: linear-gradient(135deg, var(--white), var(--pastel-blue));
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.hero-subtitle {
|
|
font-size: 1.25rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 2.5rem;
|
|
max-width: 600px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
/* Hero visual elements */
|
|
.hero-visual {
|
|
position: relative;
|
|
height: 400px;
|
|
}
|
|
|
|
.floating-cards {
|
|
position: relative;
|
|
height: 100%;
|
|
}
|
|
|
|
.floating-card {
|
|
position: absolute;
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 16px;
|
|
padding: 1.5rem;
|
|
backdrop-filter: blur(10px);
|
|
animation: float 6s ease-in-out infinite;
|
|
}
|
|
|
|
.floating-card.card-1 {
|
|
top: 20%;
|
|
left: 10%;
|
|
animation-delay: 0s;
|
|
}
|
|
|
|
.floating-card.card-2 {
|
|
top: 50%;
|
|
right: 10%;
|
|
animation-delay: 2s;
|
|
}
|
|
|
|
.floating-card.card-3 {
|
|
bottom: 20%;
|
|
left: 30%;
|
|
animation-delay: 4s;
|
|
}
|
|
|
|
@keyframes float {
|
|
0%, 100% { transform: translateY(0px); }
|
|
50% { transform: translateY(-20px); }
|
|
}
|
|
|
|
.card-icon {
|
|
font-size: 2rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.card-title {
|
|
font-weight: 600;
|
|
margin-bottom: 0.5rem;
|
|
color: var(--white);
|
|
}
|
|
|
|
.card-price {
|
|
color: var(--pastel-green);
|
|
font-weight: 700;
|
|
}
|
|
|
|
/* Dashboard preview */
|
|
.dashboard-preview {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 16px;
|
|
padding: 1.5rem;
|
|
height: 300px;
|
|
}
|
|
|
|
.dashboard-header {
|
|
height: 40px;
|
|
background: var(--border-color);
|
|
border-radius: 8px;
|
|
margin-bottom: 1rem;
|
|
animation: pulse 2s infinite;
|
|
}
|
|
|
|
.dashboard-content {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 1rem;
|
|
height: 200px;
|
|
}
|
|
|
|
.dashboard-widget {
|
|
background: var(--border-color);
|
|
border-radius: 8px;
|
|
animation: pulse 2s infinite;
|
|
}
|
|
|
|
.dashboard-widget.large {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0%, 100% { opacity: 0.6; }
|
|
50% { opacity: 1; }
|
|
}
|
|
|
|
/* DeFi visual */
|
|
.defi-interface {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 16px;
|
|
padding: 1.5rem;
|
|
height: 300px;
|
|
}
|
|
|
|
.defi-chart-preview {
|
|
height: 150px;
|
|
background: var(--border-color);
|
|
border-radius: 8px;
|
|
margin-bottom: 1rem;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.defi-chart-preview::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: 20px;
|
|
left: 20px;
|
|
right: 20px;
|
|
height: 2px;
|
|
background: var(--pastel-green);
|
|
animation: chartGrow 3s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes chartGrow {
|
|
0% { width: 0; }
|
|
100% { width: calc(100% - 40px); }
|
|
}
|
|
|
|
.defi-stats {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
}
|
|
|
|
.stat-item {
|
|
text-align: center;
|
|
}
|
|
|
|
.stat-value {
|
|
font-size: 1.5rem;
|
|
font-weight: 700;
|
|
color: var(--pastel-blue);
|
|
}
|
|
|
|
.stat-label {
|
|
font-size: 0.9rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* Liquidity Pool Animation */
|
|
.liquidity-pool-animation {
|
|
position: relative;
|
|
height: 400px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.pool-container {
|
|
position: relative;
|
|
width: 300px;
|
|
height: 300px;
|
|
}
|
|
|
|
.pool-center {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
width: 120px;
|
|
height: 120px;
|
|
background: linear-gradient(135deg, var(--pastel-blue), var(--pastel-purple));
|
|
border-radius: 50%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-shadow: 0 0 30px rgba(167, 243, 208, 0.4);
|
|
animation: poolPulse 3s ease-in-out infinite;
|
|
}
|
|
|
|
.pool-label {
|
|
font-size: 1rem;
|
|
font-weight: 700;
|
|
color: var(--black);
|
|
text-align: center;
|
|
}
|
|
|
|
.asset-flow {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.asset-token {
|
|
position: absolute;
|
|
width: 60px;
|
|
height: 60px;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-weight: 600;
|
|
font-size: 0.9rem;
|
|
color: var(--black);
|
|
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
.asset-token.eth {
|
|
background: var(--pastel-blue);
|
|
top: 20px;
|
|
left: 20px;
|
|
}
|
|
|
|
.asset-token.usdc {
|
|
background: var(--pastel-green);
|
|
top: 20px;
|
|
right: 20px;
|
|
}
|
|
|
|
.asset-token.btc {
|
|
background: var(--pastel-yellow);
|
|
bottom: 20px;
|
|
left: 20px;
|
|
}
|
|
|
|
.asset-token.dai {
|
|
background: var(--pastel-orange);
|
|
bottom: 20px;
|
|
right: 20px;
|
|
}
|
|
|
|
.asset-token.flowing-in {
|
|
animation: flowToPool 4s ease-in-out infinite;
|
|
}
|
|
|
|
.asset-token.flowing-out {
|
|
animation: flowFromPool 4s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes poolPulse {
|
|
0%, 100% {
|
|
transform: translate(-50%, -50%) scale(1);
|
|
box-shadow: 0 0 30px rgba(167, 243, 208, 0.4);
|
|
}
|
|
50% {
|
|
transform: translate(-50%, -50%) scale(1.05);
|
|
box-shadow: 0 0 40px rgba(167, 243, 208, 0.6);
|
|
}
|
|
}
|
|
|
|
@keyframes flowToPool {
|
|
0% {
|
|
transform: scale(1);
|
|
opacity: 0.8;
|
|
}
|
|
50% {
|
|
transform: scale(0.7) translate(30px, 30px);
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
opacity: 0.8;
|
|
}
|
|
}
|
|
|
|
@keyframes flowFromPool {
|
|
0% {
|
|
transform: scale(1);
|
|
opacity: 0.8;
|
|
}
|
|
50% {
|
|
transform: scale(0.7) translate(-30px, -30px);
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
opacity: 0.8;
|
|
}
|
|
}
|
|
|
|
.pool-stats {
|
|
position: absolute;
|
|
bottom: -40px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
text-align: center;
|
|
}
|
|
|
|
.pool-stat {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.pool-stat .stat-label {
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.pool-stat .stat-value {
|
|
color: var(--pastel-blue);
|
|
font-weight: 700;
|
|
}
|
|
|
|
/* Geometric shapes */
|
|
.geometric-shapes {
|
|
position: relative;
|
|
height: 300px;
|
|
}
|
|
|
|
.shape {
|
|
position: absolute;
|
|
border-radius: 50%;
|
|
animation: rotate 20s linear infinite;
|
|
}
|
|
|
|
.shape-1 {
|
|
width: 100px;
|
|
height: 100px;
|
|
background: linear-gradient(45deg, var(--pastel-blue), var(--pastel-purple));
|
|
top: 20%;
|
|
left: 20%;
|
|
}
|
|
|
|
.shape-2 {
|
|
width: 80px;
|
|
height: 80px;
|
|
background: linear-gradient(45deg, var(--pastel-pink), var(--pastel-yellow));
|
|
top: 60%;
|
|
right: 30%;
|
|
animation-delay: 5s;
|
|
}
|
|
|
|
.shape-3 {
|
|
width: 60px;
|
|
height: 60px;
|
|
background: linear-gradient(45deg, var(--pastel-green), var(--pastel-orange));
|
|
bottom: 30%;
|
|
left: 50%;
|
|
animation-delay: 10s;
|
|
}
|
|
|
|
@keyframes rotate {
|
|
from { transform: rotate(0deg); }
|
|
to { transform: rotate(360deg); }
|
|
}
|
|
|
|
/* Scroll indicator */
|
|
.scroll-indicator {
|
|
position: absolute;
|
|
bottom: 30px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
z-index: 3;
|
|
}
|
|
|
|
.scroll-arrow {
|
|
width: 30px;
|
|
height: 30px;
|
|
border-right: 2px solid var(--pastel-blue);
|
|
border-bottom: 2px solid var(--pastel-blue);
|
|
transform: rotate(45deg);
|
|
animation: bounce 2s infinite;
|
|
}
|
|
|
|
@keyframes bounce {
|
|
0%, 20%, 50%, 80%, 100% { transform: rotate(45deg) translateY(0); }
|
|
40% { transform: rotate(45deg) translateY(-10px); }
|
|
60% { transform: rotate(45deg) translateY(-5px); }
|
|
}
|
|
|
|
/* Section styles */
|
|
.section {
|
|
padding: 120px 0;
|
|
position: relative;
|
|
}
|
|
|
|
.section-alt {
|
|
background: var(--bg-secondary);
|
|
}
|
|
|
|
.section-title {
|
|
font-size: clamp(2.5rem, 5vw, 3.5rem);
|
|
font-weight: 700;
|
|
margin-bottom: 1.5rem;
|
|
color: var(--white);
|
|
text-align: center;
|
|
}
|
|
|
|
.section-subtitle {
|
|
font-size: 1.2rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 4rem;
|
|
max-width: 700px;
|
|
text-align: center;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
/* Card styles */
|
|
.feature-card {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 20px;
|
|
padding: 2.5rem;
|
|
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
backdrop-filter: blur(10px);
|
|
position: relative;
|
|
overflow: hidden;
|
|
height: 100%;
|
|
}
|
|
|
|
.feature-card::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 1px;
|
|
background: linear-gradient(90deg, transparent, var(--pastel-blue), transparent);
|
|
opacity: 0;
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.feature-card:hover {
|
|
transform: translateY(-10px);
|
|
border-color: var(--pastel-blue);
|
|
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
|
|
background: rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
.feature-card:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.feature-icon {
|
|
width: 70px;
|
|
height: 70px;
|
|
background: linear-gradient(135deg, var(--pastel-blue), var(--pastel-purple));
|
|
border-radius: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin-bottom: 1.5rem;
|
|
font-size: 1.75rem;
|
|
color: var(--black);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.feature-card h3,
|
|
.feature-card h5 {
|
|
color: var(--white);
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.feature-card p {
|
|
color: var(--text-secondary);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
/* Feature highlights */
|
|
.feature-highlights {
|
|
margin: 1.5rem 0;
|
|
}
|
|
|
|
.highlight-item {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
.highlight-icon {
|
|
color: var(--pastel-green);
|
|
margin-right: 0.75rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* Interactive elements */
|
|
.interactive-demo {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 20px;
|
|
padding: 2rem;
|
|
position: relative;
|
|
overflow: hidden;
|
|
height: 100%;
|
|
}
|
|
|
|
/* Liquidity pools */
|
|
.liquidity-pools {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.liquidity-pool {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 12px;
|
|
padding: 1.5rem;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.liquidity-pool:hover {
|
|
border-color: var(--pastel-blue);
|
|
transform: scale(1.02);
|
|
}
|
|
|
|
.pool-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.pool-tokens {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.token-pair {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: -0.5rem;
|
|
}
|
|
|
|
.token-icon {
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: 50%;
|
|
border: 2px solid var(--white);
|
|
}
|
|
|
|
.token-icon.eth { background: var(--pastel-blue); }
|
|
.token-icon.usdc { background: var(--pastel-green); }
|
|
.token-icon.btc { background: var(--pastel-yellow); }
|
|
.token-icon.dai { background: var(--pastel-orange); }
|
|
|
|
.pool-name {
|
|
font-weight: 600;
|
|
color: var(--white);
|
|
}
|
|
|
|
.pool-apr {
|
|
color: var(--pastel-green);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.pool-stats {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.stat {
|
|
text-align: center;
|
|
}
|
|
|
|
.stat-label {
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.stat-value {
|
|
font-weight: 600;
|
|
color: var(--white);
|
|
}
|
|
|
|
/* Orderbook */
|
|
.orderbook {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border-radius: 12px;
|
|
padding: 1rem;
|
|
font-family: 'Monaco', 'Menlo', monospace;
|
|
font-size: 0.85rem;
|
|
height: 300px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.orderbook-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 0.5rem 0;
|
|
border-bottom: 1px solid var(--border-color);
|
|
margin-bottom: 0.5rem;
|
|
font-weight: 600;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.order-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 0.25rem 0;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
animation: slideInOrder 0.5s ease-out;
|
|
}
|
|
|
|
.order-buy { color: var(--pastel-green); }
|
|
.order-sell { color: var(--pastel-pink); }
|
|
|
|
@keyframes slideInOrder {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateX(20px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
.spread-indicator {
|
|
margin-top: 1rem;
|
|
padding-top: 1rem;
|
|
border-top: 1px solid var(--border-color);
|
|
text-align: center;
|
|
}
|
|
|
|
.spread-label {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.spread-value {
|
|
color: var(--pastel-blue);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* Marketplace flow */
|
|
.marketplace-flow-container {
|
|
height: 400px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border-radius: 20px;
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
|
|
.marketplace-items {
|
|
display: flex;
|
|
gap: 1.5rem;
|
|
animation: marketplaceFlow 25s linear infinite;
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 0;
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
.marketplace-item {
|
|
min-width: 280px;
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 16px;
|
|
padding: 1.5rem;
|
|
backdrop-filter: blur(10px);
|
|
transition: all 0.3s ease;
|
|
position: relative;
|
|
}
|
|
|
|
.marketplace-item:hover {
|
|
transform: scale(1.05);
|
|
border-color: var(--pastel-blue);
|
|
}
|
|
|
|
.marketplace-item.rarity-legendary {
|
|
border-color: var(--pastel-yellow);
|
|
box-shadow: 0 0 20px rgba(253, 230, 138, 0.3);
|
|
}
|
|
|
|
.marketplace-item.rarity-ultra-rare {
|
|
border-color: var(--pastel-purple);
|
|
box-shadow: 0 0 20px rgba(196, 181, 253, 0.3);
|
|
}
|
|
|
|
.marketplace-item.rarity-epic {
|
|
border-color: var(--pastel-pink);
|
|
box-shadow: 0 0 20px rgba(251, 182, 206, 0.3);
|
|
}
|
|
|
|
.item-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.item-image {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.rarity-badge {
|
|
background: var(--pastel-blue);
|
|
color: var(--black);
|
|
padding: 0.25rem 0.5rem;
|
|
border-radius: 6px;
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.item-title {
|
|
color: var(--white);
|
|
font-weight: 600;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.item-category {
|
|
color: var(--text-muted);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.item-seller {
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.seller-label {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.seller-name {
|
|
color: var(--pastel-blue);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.item-footer {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-top: 1rem;
|
|
padding-top: 1rem;
|
|
border-top: 1px solid var(--border-color);
|
|
}
|
|
|
|
.item-price {
|
|
color: var(--pastel-green);
|
|
font-weight: 700;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.btn-quick-buy {
|
|
background: var(--pastel-blue);
|
|
color: var(--black);
|
|
border: none;
|
|
padding: 0.5rem 1rem;
|
|
border-radius: 8px;
|
|
font-weight: 600;
|
|
font-size: 0.85rem;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.btn-quick-buy:hover {
|
|
background: var(--white);
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
@keyframes marketplaceFlow {
|
|
0% {
|
|
transform: translateX(0) translateY(-50%);
|
|
}
|
|
100% {
|
|
transform: translateX(-100%) translateY(-50%);
|
|
}
|
|
}
|
|
|
|
.flow-overlay-left,
|
|
.flow-overlay-right {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 100px;
|
|
pointer-events: none;
|
|
z-index: 2;
|
|
}
|
|
|
|
.flow-overlay-left {
|
|
left: 0;
|
|
background: linear-gradient(90deg, var(--bg-secondary), transparent);
|
|
}
|
|
|
|
.flow-overlay-right {
|
|
right: 0;
|
|
background: linear-gradient(270deg, var(--bg-secondary), transparent);
|
|
}
|
|
|
|
/* Platform wireframes */
|
|
.platform-wireframe {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 16px;
|
|
padding: 1.5rem;
|
|
position: relative;
|
|
overflow: hidden;
|
|
height: 400px;
|
|
}
|
|
|
|
.wireframe-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
height: 50px;
|
|
background: var(--border-color);
|
|
border-radius: 8px;
|
|
margin-bottom: 1rem;
|
|
padding: 0 1rem;
|
|
}
|
|
|
|
.header-logo {
|
|
width: 40px;
|
|
height: 20px;
|
|
background: var(--pastel-blue);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.header-nav {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.nav-item.active {
|
|
background: var(--pastel-blue);
|
|
}
|
|
|
|
.header-user {
|
|
width: 30px;
|
|
height: 30px;
|
|
background: var(--border-light);
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.wireframe-sidebar {
|
|
position: absolute;
|
|
left: 1.5rem;
|
|
top: 120px;
|
|
width: 60px;
|
|
height: 200px;
|
|
background: var(--border-color);
|
|
border-radius: 8px;
|
|
padding: 1rem 0.5rem;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.sidebar-item {
|
|
height: 30px;
|
|
background: var(--border-light);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.sidebar-item.active {
|
|
background: var(--pastel-blue);
|
|
}
|
|
|
|
.wireframe-main {
|
|
margin-left: 80px;
|
|
height: 250px;
|
|
}
|
|
|
|
.main-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.page-title {
|
|
width: 150px;
|
|
height: 30px;
|
|
background: var(--border-light);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.action-buttons {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.btn-wireframe {
|
|
width: 80px;
|
|
height: 30px;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.btn-wireframe.primary {
|
|
background: var(--pastel-blue);
|
|
}
|
|
|
|
.btn-wireframe.secondary {
|
|
background: var(--border-light);
|
|
}
|
|
|
|
.main-content {
|
|
height: 180px;
|
|
}
|
|
|
|
.content-grid {
|
|
display: grid;
|
|
grid-template-columns: 2fr 1fr 1fr;
|
|
grid-template-rows: 1fr 1fr;
|
|
gap: 1rem;
|
|
height: 100%;
|
|
}
|
|
|
|
.grid-item {
|
|
background: var(--border-color);
|
|
border-radius: 8px;
|
|
animation: wireframeGlow 3s infinite;
|
|
}
|
|
|
|
.grid-item.large {
|
|
grid-row: 1 / -1;
|
|
}
|
|
|
|
.grid-item.medium {
|
|
grid-column: 2 / 4;
|
|
}
|
|
|
|
.grid-item.small {
|
|
/* Default grid placement */
|
|
}
|
|
|
|
@keyframes wireframeGlow {
|
|
0%, 100% { opacity: 0.6; }
|
|
50% { opacity: 1; }
|
|
}
|
|
|
|
/* Company dashboard */
|
|
.company-dashboard {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 16px;
|
|
padding: 1.5rem;
|
|
}
|
|
|
|
.dashboard-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 1.5rem;
|
|
padding-bottom: 1rem;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.company-info {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.company-logo {
|
|
width: 40px;
|
|
height: 40px;
|
|
background: var(--pastel-blue);
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.company-details h6 {
|
|
margin: 0;
|
|
color: var(--white);
|
|
}
|
|
|
|
.company-status {
|
|
padding: 0.25rem 0.75rem;
|
|
border-radius: 12px;
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.company-status.active {
|
|
background: var(--pastel-green);
|
|
color: var(--black);
|
|
}
|
|
|
|
.dashboard-actions {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.btn-dashboard {
|
|
padding: 0.5rem 1rem;
|
|
border-radius: 8px;
|
|
border: none;
|
|
font-weight: 600;
|
|
font-size: 0.85rem;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.btn-dashboard.primary {
|
|
background: var(--pastel-blue);
|
|
color: var(--black);
|
|
}
|
|
|
|
.btn-dashboard.secondary {
|
|
background: transparent;
|
|
color: var(--pastel-blue);
|
|
border: 1px solid var(--pastel-blue);
|
|
}
|
|
|
|
.dashboard-metrics {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 1rem;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
|
|
.metric-card {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 12px;
|
|
padding: 1rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.metric-value {
|
|
font-size: 1.5rem;
|
|
font-weight: 700;
|
|
color: var(--white);
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.metric-label {
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.metric-change {
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.metric-change.positive { color: var(--pastel-green); }
|
|
.metric-change.negative { color: var(--pastel-pink); }
|
|
.metric-change.neutral { color: var(--text-muted); }
|
|
|
|
.content-section h6 {
|
|
color: var(--white);
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.activity-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.activity-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
padding: 0.75rem;
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.activity-icon {
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.activity-icon.proposal { background: var(--pastel-blue); }
|
|
.activity-icon.treasury { background: var(--pastel-green); }
|
|
.activity-icon.vote { background: var(--pastel-purple); }
|
|
|
|
.activity-text {
|
|
flex: 1;
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.activity-time {
|
|
color: var(--text-muted);
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
/* Trading interface */
|
|
.trading-interface {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 16px;
|
|
padding: 1.5rem;
|
|
height: 500px;
|
|
}
|
|
|
|
.trading-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 1.5rem;
|
|
padding-bottom: 1rem;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.trading-pair {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.pair-name {
|
|
font-size: 1.25rem;
|
|
font-weight: 700;
|
|
color: var(--white);
|
|
}
|
|
|
|
.pair-price {
|
|
font-size: 1.1rem;
|
|
font-weight: 600;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.pair-change {
|
|
padding: 0.25rem 0.5rem;
|
|
border-radius: 4px;
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.pair-change.positive {
|
|
background: rgba(134, 239, 172, 0.2);
|
|
color: var(--pastel-green);
|
|
}
|
|
|
|
.trading-content {
|
|
display: grid;
|
|
grid-template-columns: 2fr 1fr;
|
|
gap: 1.5rem;
|
|
height: 350px;
|
|
}
|
|
|
|
.chart-container {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border-radius: 12px;
|
|
padding: 1rem;
|
|
}
|
|
|
|
.trading-controls {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border-radius: 12px;
|
|
padding: 1rem;
|
|
}
|
|
|
|
.order-tabs {
|
|
display: flex;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.tab-btn {
|
|
flex: 1;
|
|
padding: 0.75rem;
|
|
border: none;
|
|
background: transparent;
|
|
color: var(--text-muted);
|
|
font-weight: 600;
|
|
border-bottom: 2px solid transparent;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.tab-btn.active {
|
|
color: var(--pastel-blue);
|
|
border-bottom-color: var(--pastel-blue);
|
|
}
|
|
|
|
.form-group {
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.form-group label {
|
|
display: block;
|
|
margin-bottom: 0.5rem;
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.input-group {
|
|
position: relative;
|
|
}
|
|
|
|
.input-group input {
|
|
width: 100%;
|
|
padding: 0.75rem;
|
|
padding-right: 3rem;
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 8px;
|
|
color: var(--white);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.input-group input:focus {
|
|
outline: none;
|
|
border-color: var(--pastel-blue);
|
|
}
|
|
|
|
.input-suffix {
|
|
position: absolute;
|
|
right: 0.75rem;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
color: var(--text-muted);
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.btn-trade {
|
|
width: 100%;
|
|
padding: 1rem;
|
|
border: none;
|
|
border-radius: 8px;
|
|
font-weight: 600;
|
|
font-size: 1rem;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.btn-trade.buy {
|
|
background: var(--pastel-green);
|
|
color: var(--black);
|
|
}
|
|
|
|
.btn-trade.buy:hover {
|
|
background: var(--accent-success);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
/* Governance demos */
|
|
.governance-demo {
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.proposal-item {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 8px;
|
|
padding: 1rem;
|
|
}
|
|
|
|
.proposal-title {
|
|
font-weight: 600;
|
|
color: var(--white);
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.proposal-status {
|
|
display: inline-block;
|
|
padding: 0.25rem 0.5rem;
|
|
border-radius: 4px;
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
.proposal-status.passing {
|
|
background: var(--pastel-green);
|
|
color: var(--black);
|
|
}
|
|
|
|
.vote-bar {
|
|
width: 100%;
|
|
height: 8px;
|
|
background: var(--border-color);
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.vote-progress {
|
|
height: 100%;
|
|
background: var(--pastel-green);
|
|
transition: width 0.3s ease;
|
|
}
|
|
|
|
.vote-stats {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
/* Stakeholder demo */
|
|
.stakeholder-demo {
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.stakeholder-chart {
|
|
width: 120px;
|
|
height: 120px;
|
|
border-radius: 50%;
|
|
margin: 0 auto 1rem;
|
|
background: conic-gradient(
|
|
var(--pastel-blue) 0deg 126deg,
|
|
var(--pastel-purple) 126deg 216deg,
|
|
var(--pastel-green) 216deg 288deg,
|
|
var(--pastel-pink) 288deg 360deg
|
|
);
|
|
}
|
|
|
|
.chart-legend {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.legend-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.legend-color {
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
/* Multi-sig demo */
|
|
.multisig-demo {
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.transaction-item {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 8px;
|
|
padding: 1rem;
|
|
}
|
|
|
|
.tx-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.tx-amount {
|
|
font-weight: 700;
|
|
color: var(--white);
|
|
}
|
|
|
|
.tx-status {
|
|
padding: 0.25rem 0.5rem;
|
|
border-radius: 4px;
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.tx-status.pending {
|
|
background: var(--pastel-yellow);
|
|
color: var(--black);
|
|
}
|
|
|
|
.tx-description {
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
.signature-progress {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.signature {
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.signature.signed {
|
|
background: var(--pastel-green);
|
|
color: var(--black);
|
|
}
|
|
|
|
.signature.pending {
|
|
background: var(--border-color);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* Integration cards */
|
|
.integration-card {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 12px;
|
|
padding: 1.5rem;
|
|
text-align: center;
|
|
transition: all 0.3s ease;
|
|
height: 100%;
|
|
}
|
|
|
|
.integration-card:hover {
|
|
border-color: var(--pastel-blue);
|
|
transform: translateY(-5px);
|
|
}
|
|
|
|
.integration-icon {
|
|
font-size: 2rem;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.integration-card h6 {
|
|
color: var(--white);
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
/* Protocol stats */
|
|
.protocol-stats {
|
|
margin-top: 1rem;
|
|
padding-top: 1rem;
|
|
border-top: 1px solid var(--border-color);
|
|
}
|
|
|
|
.stat-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-bottom: 0.5rem;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
/* Strategy demos */
|
|
.strategy-demo {
|
|
margin-top: 1rem;
|
|
padding: 1rem;
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.compound-visualization {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.compound-layer {
|
|
padding: 0.5rem;
|
|
background: var(--border-color);
|
|
border-radius: 4px;
|
|
text-align: center;
|
|
font-size: 0.85rem;
|
|
color: var(--white);
|
|
}
|
|
|
|
.compound-layer.layer-2 {
|
|
background: var(--pastel-blue);
|
|
color: var(--black);
|
|
}
|
|
|
|
.compound-layer.layer-3 {
|
|
background: var(--pastel-green);
|
|
color: var(--black);
|
|
}
|
|
|
|
.rebalance-chart {
|
|
text-align: center;
|
|
}
|
|
|
|
.allocation-bar {
|
|
display: flex;
|
|
height: 30px;
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.allocation-segment {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
color: var(--black);
|
|
}
|
|
|
|
.allocation-segment.eth { background: var(--pastel-blue); }
|
|
.allocation-segment.btc { background: var(--pastel-yellow); }
|
|
.allocation-segment.stable { background: var(--pastel-green); }
|
|
|
|
.rebalance-arrow {
|
|
font-size: 1.5rem;
|
|
color: var(--pastel-blue);
|
|
}
|
|
|
|
.risk-gauge {
|
|
text-align: center;
|
|
}
|
|
|
|
.gauge-container {
|
|
position: relative;
|
|
width: 100px;
|
|
height: 50px;
|
|
margin: 0 auto 1rem;
|
|
background: var(--border-color);
|
|
border-radius: 50px 50px 0 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.gauge-fill {
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 0;
|
|
height: 100%;
|
|
width: var(--risk-level);
|
|
background: var(--pastel-green);
|
|
transition: width 0.3s ease;
|
|
}
|
|
|
|
.gauge-label {
|
|
font-size: 0.85rem;
|
|
color: var(--white);
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.risk-metrics {
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.risk-metric {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
/* Network grid */
|
|
.network-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.network-card {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 12px;
|
|
padding: 1rem;
|
|
text-align: center;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.network-card:hover {
|
|
border-color: var(--pastel-blue);
|
|
transform: scale(1.02);
|
|
}
|
|
|
|
.network-icon {
|
|
font-size: 2rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.network-name {
|
|
font-weight: 600;
|
|
color: var(--white);
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.network-stats {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.cross-chain-features {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.feature-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.feature-check {
|
|
color: var(--pastel-green);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* Innovation cards */
|
|
.innovation-card {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 16px;
|
|
padding: 2rem;
|
|
height: 100%;
|
|
}
|
|
|
|
.innovation-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.innovation-icon {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.innovation-card h5 {
|
|
color: var(--white);
|
|
margin: 0;
|
|
}
|
|
|
|
.ai-demo {
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.ai-process {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.process-step {
|
|
padding: 0.5rem 1rem;
|
|
background: var(--border-color);
|
|
border-radius: 8px;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.process-step.active {
|
|
background: var(--pastel-blue);
|
|
color: var(--black);
|
|
}
|
|
|
|
.process-arrow {
|
|
color: var(--pastel-blue);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.chain-network {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 0.5rem;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.chain-node {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
color: var(--black);
|
|
}
|
|
|
|
.chain-node.ethereum { background: var(--pastel-blue); }
|
|
.chain-node.polygon { background: var(--pastel-purple); }
|
|
.chain-node.bsc { background: var(--pastel-yellow); }
|
|
.chain-node.avalanche { background: var(--pastel-pink); }
|
|
|
|
.chain-connection {
|
|
width: 20px;
|
|
height: 2px;
|
|
background: var(--border-color);
|
|
}
|
|
|
|
/* Community stats */
|
|
.cta-features {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 2rem;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.cta-feature {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.cta-icon {
|
|
color: var(--pastel-green);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* Security indicators */
|
|
.security-indicators {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.indicator {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.indicator-icon {
|
|
font-size: 1rem;
|
|
}
|
|
|
|
/* Performance metrics */
|
|
.performance-metrics {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.metric {
|
|
text-align: center;
|
|
}
|
|
|
|
.metric-value {
|
|
font-size: 1.25rem;
|
|
font-weight: 700;
|
|
color: var(--pastel-blue);
|
|
}
|
|
|
|
.metric-label {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* Global stats */
|
|
.global-stats {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.stat {
|
|
text-align: center;
|
|
}
|
|
|
|
.stat-value {
|
|
font-size: 1.25rem;
|
|
font-weight: 700;
|
|
color: var(--pastel-blue);
|
|
}
|
|
|
|
.stat-label {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* Pure CSS scroll animations using animation-timeline (modern browsers) */
|
|
.fade-in {
|
|
animation: fadeInUp 1s ease-out both;
|
|
animation-timeline: view();
|
|
animation-range: entry 0% cover 30%;
|
|
}
|
|
|
|
.slide-in-left {
|
|
animation: slideInLeft 1s ease-out both;
|
|
animation-timeline: view();
|
|
animation-range: entry 0% cover 30%;
|
|
}
|
|
|
|
.slide-in-right {
|
|
animation: slideInRight 1s ease-out both;
|
|
animation-timeline: view();
|
|
animation-range: entry 0% cover 30%;
|
|
}
|
|
|
|
.scale-in {
|
|
animation: scaleIn 1s ease-out both;
|
|
animation-timeline: view();
|
|
animation-range: entry 0% cover 30%;
|
|
}
|
|
|
|
/* Fallback for browsers without animation-timeline support */
|
|
@supports not (animation-timeline: view()) {
|
|
.fade-in {
|
|
animation: fadeInUp 0.8s ease-out forwards;
|
|
animation-delay: 0.1s;
|
|
}
|
|
|
|
.slide-in-left {
|
|
animation: slideInLeft 0.8s ease-out forwards;
|
|
animation-delay: 0.2s;
|
|
}
|
|
|
|
.slide-in-right {
|
|
animation: slideInRight 0.8s ease-out forwards;
|
|
animation-delay: 0.3s;
|
|
}
|
|
|
|
.scale-in {
|
|
animation: scaleIn 0.8s ease-out forwards;
|
|
animation-delay: 0.4s;
|
|
}
|
|
|
|
/* Stagger animations for multiple elements */
|
|
.fade-in:nth-child(2) { animation-delay: 0.3s; }
|
|
.fade-in:nth-child(3) { animation-delay: 0.5s; }
|
|
.fade-in:nth-child(4) { animation-delay: 0.7s; }
|
|
.fade-in:nth-child(5) { animation-delay: 0.9s; }
|
|
|
|
.slide-in-left:nth-child(2) { animation-delay: 0.4s; }
|
|
.slide-in-left:nth-child(3) { animation-delay: 0.6s; }
|
|
|
|
.slide-in-right:nth-child(2) { animation-delay: 0.5s; }
|
|
.slide-in-right:nth-child(3) { animation-delay: 0.7s; }
|
|
}
|
|
|
|
/* Keyframe animations */
|
|
@keyframes fadeInUp {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(40px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes slideInLeft {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateX(-60px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
@keyframes slideInRight {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateX(60px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
@keyframes scaleIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: scale(0.8);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
/* Immediate animations for hero content */
|
|
.hero-section .fade-in,
|
|
.hero-section .slide-in-left,
|
|
.hero-section .slide-in-right {
|
|
animation: fadeInUp 1s ease-out forwards;
|
|
}
|
|
|
|
.hero-section .slide-in-right {
|
|
animation: slideInRight 1s ease-out forwards;
|
|
animation-delay: 0.3s;
|
|
}
|
|
|
|
/* Keyframe animations for hero */
|
|
@keyframes fadeInUp {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(30px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes slideInRight {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateX(50px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
/* Ensure content is visible if animations are disabled */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.fade-in,
|
|
.slide-in-left,
|
|
.slide-in-right,
|
|
.scale-in {
|
|
animation: none !important;
|
|
opacity: 1 !important;
|
|
transform: none !important;
|
|
transition: none !important;
|
|
}
|
|
}
|
|
|
|
/* Fallback for when JavaScript doesn't load */
|
|
.fade-in,
|
|
.slide-in-left,
|
|
.slide-in-right,
|
|
.scale-in {
|
|
opacity: 1;
|
|
transform: none;
|
|
}
|
|
|
|
/* Statistics */
|
|
.stat-number {
|
|
font-size: 3.5rem;
|
|
font-weight: 800;
|
|
background: linear-gradient(135deg, var(--pastel-blue), var(--pastel-purple));
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.stat-label {
|
|
color: var(--text-secondary);
|
|
font-weight: 500;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
/* Footer */
|
|
.footer {
|
|
background: var(--bg-secondary);
|
|
border-top: 1px solid var(--border-color);
|
|
padding: 4rem 0 2rem;
|
|
margin-top: 6rem;
|
|
}
|
|
|
|
.footer-link {
|
|
color: var(--text-secondary);
|
|
text-decoration: none;
|
|
transition: color 0.3s ease;
|
|
}
|
|
|
|
.footer-link:hover {
|
|
color: var(--pastel-blue);
|
|
}
|
|
|
|
/* Responsive design */
|
|
@media (max-width: 768px) {
|
|
.section {
|
|
padding: 80px 0;
|
|
}
|
|
|
|
.hero-title {
|
|
font-size: 3rem;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 2.5rem;
|
|
}
|
|
|
|
.feature-card {
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.marketplace-flow-container {
|
|
height: 300px;
|
|
}
|
|
|
|
.marketplace-item {
|
|
min-width: 240px;
|
|
}
|
|
|
|
.btn {
|
|
padding: 10px 20px;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.btn-lg {
|
|
padding: 14px 28px;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.trading-content {
|
|
grid-template-columns: 1fr;
|
|
height: auto;
|
|
}
|
|
|
|
.dashboard-metrics {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.network-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.ai-process {
|
|
flex-direction: column;
|
|
text-align: center;
|
|
}
|
|
|
|
.process-arrow {
|
|
transform: rotate(90deg);
|
|
}
|
|
|
|
.chain-network {
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.cta-features {
|
|
gap: 1rem;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 576px) {
|
|
.hero-section {
|
|
padding-top: 100px;
|
|
}
|
|
|
|
.section {
|
|
padding: 60px 0;
|
|
}
|
|
|
|
.feature-card {
|
|
padding: 2rem 1.5rem;
|
|
}
|
|
|
|
.stat-number {
|
|
font-size: 2.5rem;
|
|
}
|
|
|
|
.floating-cards {
|
|
display: none;
|
|
}
|
|
|
|
.performance-metrics,
|
|
.global-stats {
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
}
|
|
}
|
|
|
|
/* Loading states */
|
|
.loading {
|
|
opacity: 0;
|
|
animation: fadeInLoad 0.5s ease-out forwards;
|
|
}
|
|
|
|
@keyframes fadeInLoad {
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
/* World Map Styles */
|
|
.world-map-container {
|
|
background: transparent;
|
|
position: relative;
|
|
overflow: visible;
|
|
width: 100%;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.map-wrapper {
|
|
position: relative;
|
|
height: 500px;
|
|
width: 100%;
|
|
overflow: visible;
|
|
border-radius: 12px;
|
|
padding: 50px;
|
|
}
|
|
|
|
/* Remove wrapper overlay */
|
|
|
|
/* Add fade-out mask overlay directly to the leaflet map */
|
|
.leaflet-map::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: radial-gradient(ellipse at center, transparent 20%, rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0.3) 60%, rgba(0, 0, 0, 0.6) 80%, rgba(0, 0, 0, 1) 100%);
|
|
pointer-events: none;
|
|
z-index: 20;
|
|
}
|
|
|
|
/* Hero section map styling */
|
|
.hero-section .world-map-container {
|
|
max-width: 600px;
|
|
margin: 0 auto;
|
|
margin-right: -50px;
|
|
}
|
|
|
|
.hero-section .map-wrapper {
|
|
height: 450px;
|
|
border-radius: 16px;
|
|
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
|
|
overflow: visible;
|
|
padding: 60px;
|
|
}
|
|
|
|
.hero-section .map-stats {
|
|
display: none;
|
|
}
|
|
|
|
.leaflet-map {
|
|
width: 150%;
|
|
height: 150%;
|
|
z-index: 1;
|
|
background: transparent !important;
|
|
position: absolute;
|
|
top: -25%;
|
|
left: -25%;
|
|
}
|
|
|
|
/* Make Leaflet map visible with balanced darker grayscale */
|
|
.leaflet-map {
|
|
opacity: 1 !important;
|
|
background: transparent !important;
|
|
}
|
|
|
|
.leaflet-map .leaflet-tile {
|
|
opacity: 0.8 !important;
|
|
/* Sweet spot - darker but still visible */
|
|
filter: brightness(0.55) contrast(1.4) saturate(0) grayscale(1);
|
|
mix-blend-mode: multiply;
|
|
}
|
|
|
|
.leaflet-map .leaflet-tile-container {
|
|
opacity: 1 !important;
|
|
background: transparent !important;
|
|
}
|
|
|
|
.leaflet-map .leaflet-tile-container .leaflet-tile {
|
|
opacity: 0.8 !important;
|
|
filter: brightness(0.55) contrast(1.4) saturate(0) grayscale(1);
|
|
mix-blend-mode: multiply;
|
|
}
|
|
|
|
/* Hide all Leaflet controls */
|
|
.leaflet-map .leaflet-control-zoom,
|
|
.leaflet-map .leaflet-control-attribution {
|
|
display: none !important;
|
|
}
|
|
|
|
.leaflet-map .leaflet-container {
|
|
opacity: 1 !important;
|
|
background: transparent !important;
|
|
}
|
|
|
|
.leaflet-map .leaflet-tile-pane {
|
|
opacity: 1 !important;
|
|
background: transparent !important;
|
|
}
|
|
|
|
.leaflet-map .leaflet-layer {
|
|
opacity: 1 !important;
|
|
background: transparent !important;
|
|
}
|
|
|
|
/* Map tiles with balanced darker grayscale styling */
|
|
.leaflet-map .map-tiles {
|
|
opacity: 0.8 !important;
|
|
filter: brightness(0.55) contrast(1.4) saturate(0) grayscale(1);
|
|
mix-blend-mode: multiply;
|
|
}
|
|
|
|
.connection-overlay {
|
|
position: absolute;
|
|
top: -50px;
|
|
left: -50px;
|
|
right: -50px;
|
|
bottom: -50px;
|
|
pointer-events: none;
|
|
z-index: 10;
|
|
overflow: visible;
|
|
}
|
|
|
|
.connections-svg {
|
|
width: 100%;
|
|
height: 100%;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
z-index: 11;
|
|
}
|
|
|
|
.connection-line {
|
|
fill: none;
|
|
stroke: #00ffff;
|
|
stroke-width: 3;
|
|
opacity: 0.9;
|
|
filter: drop-shadow(0 0 12px #00ffff);
|
|
}
|
|
|
|
.connection-line.animated {
|
|
animation: beamPulse 3s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes beamPulse {
|
|
0%, 100% {
|
|
opacity: 0.4;
|
|
stroke-width: 1;
|
|
}
|
|
50% {
|
|
opacity: 0.9;
|
|
stroke-width: 3;
|
|
}
|
|
}
|
|
|
|
.connection-dot {
|
|
fill: #00ffff;
|
|
filter: drop-shadow(0 0 15px #00ffff);
|
|
opacity: 1;
|
|
}
|
|
|
|
.connection-dot.moving {
|
|
fill: #00ff00;
|
|
filter: drop-shadow(0 0 20px #00ff00);
|
|
animation: dotGlow 1.5s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes dotGlow {
|
|
0%, 100% {
|
|
opacity: 0.8;
|
|
r: 5;
|
|
}
|
|
50% {
|
|
opacity: 1;
|
|
r: 8;
|
|
}
|
|
}
|
|
|
|
/* Beam gradient definition */
|
|
.beam-gradient {
|
|
--beam-start: rgba(0, 255, 255, 0.1);
|
|
--beam-middle: rgba(0, 255, 255, 0.8);
|
|
--beam-end: rgba(0, 255, 255, 0.1);
|
|
}
|
|
|
|
.zanzibar-hub {
|
|
fill: #00ff00;
|
|
filter: drop-shadow(0 0 20px #00ff00);
|
|
animation: hubPulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
.zanzibar-pulse {
|
|
fill: none;
|
|
stroke: #00ff00;
|
|
stroke-width: 3;
|
|
opacity: 0.8;
|
|
animation: hubRipple 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes hubPulse {
|
|
0%, 100% {
|
|
opacity: 0.9;
|
|
r: 15;
|
|
}
|
|
50% {
|
|
opacity: 1;
|
|
r: 18;
|
|
}
|
|
}
|
|
|
|
@keyframes hubRipple {
|
|
0% {
|
|
r: 15;
|
|
opacity: 0.8;
|
|
}
|
|
100% {
|
|
r: 40;
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
/* Entity Cards */
|
|
.entity-card {
|
|
position: absolute;
|
|
background: rgba(0, 0, 0, 0.95);
|
|
border: 2px solid var(--pastel-blue);
|
|
border-radius: 12px;
|
|
padding: 1rem;
|
|
min-width: 280px;
|
|
max-width: 320px;
|
|
backdrop-filter: blur(15px);
|
|
transform: translate(-50%, -100%);
|
|
z-index: 10;
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
|
|
animation: cardAppear 0.5s ease-out;
|
|
}
|
|
|
|
@keyframes cardAppear {
|
|
from {
|
|
opacity: 0;
|
|
transform: translate(-50%, -100%) scale(0.8);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translate(-50%, -100%) scale(1);
|
|
}
|
|
}
|
|
|
|
.entity-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 0.75rem;
|
|
padding-bottom: 0.5rem;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.entity-type {
|
|
padding: 0.25rem 0.75rem;
|
|
border-radius: 12px;
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
.entity-type.business {
|
|
background: var(--pastel-blue);
|
|
color: var(--black);
|
|
}
|
|
|
|
.entity-type.resident {
|
|
background: var(--pastel-purple);
|
|
color: var(--black);
|
|
}
|
|
|
|
.entity-date {
|
|
color: var(--text-muted);
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.entity-name {
|
|
font-size: 1.1rem;
|
|
font-weight: 700;
|
|
color: var(--white);
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.entity-location {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.location-icon {
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.entity-industry {
|
|
color: var(--pastel-green);
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
.entity-status {
|
|
color: var(--pastel-blue);
|
|
font-size: 0.9rem;
|
|
font-weight: 600;
|
|
margin-bottom: 0.75rem;
|
|
animation: statusPulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes statusPulse {
|
|
0%, 100% {
|
|
opacity: 0.8;
|
|
}
|
|
50% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.connection-progress {
|
|
margin-top: 0.75rem;
|
|
}
|
|
|
|
.progress-bar {
|
|
width: 100%;
|
|
height: 4px;
|
|
background: var(--border-color);
|
|
border-radius: 2px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.progress-fill {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, var(--pastel-blue), var(--pastel-green));
|
|
border-radius: 2px;
|
|
transition: width 0.3s ease;
|
|
animation: progressGlow 1.5s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes progressGlow {
|
|
0%, 100% {
|
|
box-shadow: 0 0 4px var(--pastel-blue);
|
|
}
|
|
50% {
|
|
box-shadow: 0 0 8px var(--pastel-green);
|
|
}
|
|
}
|
|
|
|
.zanzibar-hub {
|
|
fill: var(--pastel-green);
|
|
filter: drop-shadow(0 0 10px var(--pastel-green));
|
|
}
|
|
|
|
.zanzibar-pulse {
|
|
fill: none;
|
|
stroke: var(--pastel-green);
|
|
stroke-width: 2;
|
|
opacity: 0.6;
|
|
animation: hubPulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes hubPulse {
|
|
0% {
|
|
r: 12;
|
|
opacity: 0.8;
|
|
}
|
|
100% {
|
|
r: 25;
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.city-labels {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.city-label {
|
|
position: absolute;
|
|
background: rgba(0, 0, 0, 0.8);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 8px;
|
|
padding: 0.5rem 0.75rem;
|
|
backdrop-filter: blur(10px);
|
|
transform: translate(-50%, -50%);
|
|
animation: labelFloat 4s ease-in-out infinite;
|
|
}
|
|
|
|
.city-label:nth-child(2n) {
|
|
animation-delay: 1s;
|
|
}
|
|
|
|
.city-label:nth-child(3n) {
|
|
animation-delay: 2s;
|
|
}
|
|
|
|
@keyframes labelFloat {
|
|
0%, 100% {
|
|
transform: translate(-50%, -50%) translateY(0px);
|
|
}
|
|
50% {
|
|
transform: translate(-50%, -50%) translateY(-5px);
|
|
}
|
|
}
|
|
|
|
.city-name {
|
|
display: block;
|
|
color: var(--white);
|
|
font-weight: 600;
|
|
font-size: 0.9rem;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.city-name.zanzibar {
|
|
color: var(--pastel-green);
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.city-connections {
|
|
display: block;
|
|
color: var(--pastel-blue);
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.city-subtitle {
|
|
display: block;
|
|
color: var(--pastel-purple);
|
|
font-size: 0.8rem;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.total-entities {
|
|
display: block;
|
|
color: var(--pastel-green);
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.zanzibar-label {
|
|
position: absolute;
|
|
background: rgba(0, 0, 0, 0.9);
|
|
border: 2px solid var(--pastel-green);
|
|
border-radius: 12px;
|
|
padding: 1rem 1.25rem;
|
|
backdrop-filter: blur(15px);
|
|
transform: translate(-50%, -50%);
|
|
box-shadow: 0 0 20px rgba(134, 239, 172, 0.3);
|
|
}
|
|
|
|
.map-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 2rem;
|
|
margin-top: 2rem;
|
|
padding-top: 2rem;
|
|
border-top: 1px solid var(--border-color);
|
|
}
|
|
|
|
.map-stats .stat-item {
|
|
text-align: center;
|
|
}
|
|
|
|
.map-stats .stat-number {
|
|
font-size: 2rem;
|
|
font-weight: 700;
|
|
color: var(--pastel-blue);
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.map-stats .stat-label {
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
.global-connections-section {
|
|
background: var(--bg-secondary);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.global-connections-section::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background:
|
|
radial-gradient(circle at 30% 20%, rgba(167, 243, 208, 0.03) 0%, transparent 50%),
|
|
radial-gradient(circle at 70% 80%, rgba(196, 181, 253, 0.03) 0%, transparent 50%);
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* Responsive map styles */
|
|
@media (max-width: 768px) {
|
|
.map-wrapper {
|
|
height: 350px;
|
|
}
|
|
|
|
.map-stats {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
gap: 1rem;
|
|
}
|
|
|
|
.city-label {
|
|
padding: 0.25rem 0.5rem;
|
|
}
|
|
|
|
.city-name {
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.city-connections {
|
|
font-size: 0.7rem;
|
|
}
|
|
|
|
.zanzibar-label {
|
|
padding: 0.75rem 1rem;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 576px) {
|
|
.map-wrapper {
|
|
height: 300px;
|
|
}
|
|
|
|
.map-stats {
|
|
grid-template-columns: 1fr;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.world-map-container {
|
|
padding: 1rem;
|
|
}
|
|
}
|
|
|
|
/* Utility classes */
|
|
.text-gradient {
|
|
background: linear-gradient(135deg, var(--pastel-blue), var(--pastel-purple));
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.border-gradient {
|
|
border: 1px solid;
|
|
border-image: linear-gradient(135deg, var(--pastel-blue), var(--pastel-purple)) 1;
|
|
}
|
|
|
|
.bg-glass {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
backdrop-filter: blur(10px);
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
|
|
/* Asset Digitalization Styles */
|
|
.asset-showcase {
|
|
padding: 2rem 0;
|
|
position: relative;
|
|
}
|
|
|
|
|
|
.asset-showcase h3 {
|
|
font-size: 2.5rem;
|
|
font-weight: 700;
|
|
margin-bottom: 1.5rem;
|
|
color: var(--white);
|
|
background: linear-gradient(135deg, var(--white), var(--pastel-blue));
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.asset-showcase .lead {
|
|
font-size: 1.25rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 2rem;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.feature-list {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.feature-list li {
|
|
padding: 0.75rem 0;
|
|
color: var(--text-secondary);
|
|
font-size: 1.1rem;
|
|
display: flex;
|
|
align-items: center;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.feature-list li:hover {
|
|
color: var(--white);
|
|
transform: translateX(5px);
|
|
}
|
|
|
|
.feature-list li::before {
|
|
content: '';
|
|
display: inline-block;
|
|
width: 6px;
|
|
height: 6px;
|
|
background: var(--pastel-green);
|
|
border-radius: 50%;
|
|
margin-right: 1rem;
|
|
box-shadow: 0 0 8px var(--pastel-green);
|
|
}
|
|
|
|
.asset-visual {
|
|
padding: 2rem;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: relative;
|
|
}
|
|
|
|
/* Property Tokenization Demo */
|
|
.tokenization-demo {
|
|
width: 100%;
|
|
max-width: 400px;
|
|
}
|
|
|
|
.property-card {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 20px;
|
|
padding: 2rem;
|
|
backdrop-filter: blur(15px);
|
|
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.property-card::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 2px;
|
|
background: linear-gradient(90deg, transparent, var(--pastel-blue), transparent);
|
|
opacity: 0;
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.property-card:hover {
|
|
transform: translateY(-5px);
|
|
border-color: var(--pastel-blue);
|
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
.property-card:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.property-image {
|
|
height: 140px;
|
|
background: linear-gradient(135deg, var(--pastel-blue), var(--pastel-purple));
|
|
border-radius: 12px;
|
|
margin-bottom: 1.5rem;
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 3rem;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.property-image::after {
|
|
content: '🏢';
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
font-size: 3rem;
|
|
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
|
|
}
|
|
|
|
.property-details h5 {
|
|
color: var(--white);
|
|
margin-bottom: 0.75rem;
|
|
font-weight: 600;
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.property-details p {
|
|
color: var(--text-secondary);
|
|
margin-bottom: 1.5rem;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.property-details .progress {
|
|
height: 10px;
|
|
background: rgba(255, 255, 255, 0.1);
|
|
border-radius: 5px;
|
|
margin-bottom: 0.75rem;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.property-details .progress-bar {
|
|
background: linear-gradient(90deg, var(--pastel-green), var(--pastel-blue));
|
|
border-radius: 5px;
|
|
transition: width 0.3s ease;
|
|
box-shadow: 0 0 10px rgba(134, 239, 172, 0.5);
|
|
}
|
|
|
|
.property-details small {
|
|
color: var(--pastel-green);
|
|
font-weight: 600;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
/* Service Demo */
|
|
.service-demo {
|
|
width: 100%;
|
|
max-width: 400px;
|
|
}
|
|
|
|
.service-card {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 20px;
|
|
padding: 2rem;
|
|
backdrop-filter: blur(15px);
|
|
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.service-card::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 2px;
|
|
background: linear-gradient(90deg, transparent, var(--pastel-purple), transparent);
|
|
opacity: 0;
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.service-card:hover {
|
|
transform: translateY(-5px);
|
|
border-color: var(--pastel-purple);
|
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
.service-card:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.service-provider {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 1.5rem;
|
|
padding-bottom: 1rem;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.provider-avatar {
|
|
width: 60px;
|
|
height: 60px;
|
|
background: linear-gradient(135deg, var(--pastel-purple), var(--pastel-pink));
|
|
border-radius: 50%;
|
|
margin-right: 1rem;
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 2rem;
|
|
box-shadow: 0 4px 15px rgba(196, 181, 253, 0.3);
|
|
}
|
|
|
|
.provider-avatar::after {
|
|
content: '👨💼';
|
|
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
|
|
}
|
|
|
|
.provider-info h6 {
|
|
color: var(--white);
|
|
margin-bottom: 0.25rem;
|
|
font-weight: 600;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.provider-info p {
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
margin: 0;
|
|
}
|
|
|
|
.service-contract .contract-status {
|
|
background: var(--pastel-green);
|
|
color: var(--black);
|
|
padding: 0.5rem 1rem;
|
|
border-radius: 20px;
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
display: inline-block;
|
|
margin-bottom: 1rem;
|
|
box-shadow: 0 2px 8px rgba(134, 239, 172, 0.3);
|
|
}
|
|
|
|
.milestones {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.milestone {
|
|
padding: 0.75rem 1rem;
|
|
border-radius: 8px;
|
|
font-size: 0.9rem;
|
|
font-weight: 500;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.milestone.completed {
|
|
background: rgba(134, 239, 172, 0.1);
|
|
color: var(--pastel-green);
|
|
border-left: 3px solid var(--pastel-green);
|
|
}
|
|
|
|
.milestone.active {
|
|
background: rgba(253, 230, 138, 0.1);
|
|
color: var(--pastel-yellow);
|
|
border-left: 3px solid var(--pastel-yellow);
|
|
animation: pulse 2s infinite;
|
|
}
|
|
|
|
.milestone.pending {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
color: var(--text-muted);
|
|
border-left: 3px solid var(--border-color);
|
|
}
|
|
|
|
/* Digital Assets Demo */
|
|
.digital-assets-demo {
|
|
width: 100%;
|
|
max-width: 450px;
|
|
}
|
|
|
|
.asset-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.digital-asset {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 16px;
|
|
padding: 1.5rem;
|
|
backdrop-filter: blur(10px);
|
|
transition: all 0.3s ease;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.digital-asset::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 1px;
|
|
background: linear-gradient(90deg, transparent, var(--pastel-blue), transparent);
|
|
opacity: 0;
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.digital-asset:hover {
|
|
transform: translateY(-3px);
|
|
border-color: var(--pastel-blue);
|
|
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
.digital-asset:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.asset-type {
|
|
background: linear-gradient(135deg, var(--pastel-blue), var(--pastel-purple));
|
|
color: var(--black);
|
|
padding: 0.4rem 1rem;
|
|
border-radius: 20px;
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
display: inline-block;
|
|
margin-bottom: 1rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
box-shadow: 0 2px 8px rgba(167, 243, 208, 0.3);
|
|
}
|
|
|
|
.digital-asset h6 {
|
|
color: var(--white);
|
|
margin-bottom: 0.75rem;
|
|
font-weight: 600;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.digital-asset p {
|
|
color: var(--text-secondary);
|
|
font-size: 0.95rem;
|
|
margin: 0;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
/* Responsive adjustments for asset digitalization */
|
|
@media (max-width: 768px) {
|
|
.asset-showcase {
|
|
text-align: center;
|
|
margin-bottom: 3rem;
|
|
}
|
|
|
|
.asset-showcase h3 {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.asset-visual {
|
|
margin-bottom: 2rem;
|
|
padding: 1rem;
|
|
}
|
|
|
|
.property-card,
|
|
.service-card,
|
|
.digital-assets-demo {
|
|
max-width: 100%;
|
|
}
|
|
|
|
.feature-list li {
|
|
font-size: 1rem;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 576px) {
|
|
.asset-showcase {
|
|
padding: 1rem 0;
|
|
}
|
|
|
|
.asset-showcase h3 {
|
|
font-size: 1.75rem;
|
|
}
|
|
|
|
.asset-showcase .lead {
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.property-card,
|
|
.service-card {
|
|
padding: 1.5rem;
|
|
}
|
|
|
|
.digital-asset {
|
|
padding: 1.25rem;
|
|
}
|
|
} |