/* 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,'); 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; } }