/* 2026 Horizons - Modern Minimalist Design */ :root { /* Light Theme Colors */ --primary-color: #2563eb; --primary-dark: #1d4ed8; --secondary-color: #7c3aed; --accent-color: #0ea5e9; --bg-primary: #ffffff; --bg-secondary: #f8fafc; --bg-tertiary: #f1f5f9; --text-primary: #0f172a; --text-secondary: #475569; --text-tertiary: #64748b; --border-color: #e2e8f0; --border-light: #f1f5f9; --success-color: #10b981; --warning-color: #f59e0b; --danger-color: #ef4444; --info-color: #3b82f6; --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --radius-xl: 1rem; --radius-full: 9999px; --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1); --transition-normal: 300ms cubic-bezier(0.4, 0, 0.2, 1); --transition-slow: 500ms cubic-bezier(0.4, 0, 0.2, 1); --font-sans: "Inter", system-ui, -apple-system, sans-serif; --font-heading: "Space Grotesk", system-ui, -apple-system, sans-serif; } /* Dark Theme */ [data-theme="dark"] { --primary-color: #3b82f6; --primary-dark: #2563eb; --secondary-color: #8b5cf6; --accent-color: #06b6d4; --bg-primary: #0f172a; --bg-secondary: #1e293b; --bg-tertiary: #334155; --text-primary: #f8fafc; --text-secondary: #cbd5e1; --text-tertiary: #94a3b8; --border-color: #334155; --border-light: #1e293b; --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.2); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.2); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.4), 0 10px 10px -5px rgba(0, 0, 0, 0.2); } /* Reset & Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: var(--font-sans); font-size: 16px; line-height: 1.6; color: var(--text-primary); background-color: var(--bg-primary); transition: background-color var(--transition-normal), color var(--transition-normal); overflow-x: hidden; } .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; } /* Typography */ h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: 600; line-height: 1.2; margin-bottom: 1rem; } h1 { font-size: 3.5rem; font-weight: 700; } h2 { font-size: 2.5rem; } h3 { font-size: 1.75rem; } h4 { font-size: 1.25rem; } p { margin-bottom: 1rem; color: var(--text-secondary); } a { color: var(--primary-color); text-decoration: none; transition: color var(--transition-fast); } a:hover { color: var(--primary-dark); } /* Navigation */ .navbar { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background-color: var(--bg-primary); border-bottom: 1px solid var(--border-color); backdrop-filter: blur(10px); background-color: rgba(var(--bg-primary-rgb), 0.8); } .navbar .container { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; } .nav-brand { display: flex; align-items: center; gap: 0.75rem; } .brand-icon { font-size: 1.5rem; } .brand-text { font-family: var(--font-heading); font-weight: 600; font-size: 1.25rem; color: var(--text-primary); } .nav-links { display: flex; list-style: none; gap: 2rem; } .nav-links a { color: var(--text-secondary); font-weight: 500; position: relative; padding: 0.5rem 0; } .nav-links a:hover { color: var(--text-primary); } .nav-links a::after { content: ""; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background-color: var(--primary-color); transition: width var(--transition-normal); } .nav-links a:hover::after { width: 100%; } .theme-toggle { width: 44px; height: 44px; border-radius: var(--radius-full); border: 1px solid var(--border-color); background-color: var(--bg-secondary); color: var(--text-secondary); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all var(--transition-fast); } .theme-toggle:hover { background-color: var(--bg-tertiary); color: var(--text-primary); transform: rotate(15deg); } /* Hero Section */ .hero { padding: 8rem 0 6rem; background: linear-gradient( 135deg, var(--bg-primary) 0%, var(--bg-secondary) 100% ); position: relative; overflow: hidden; } .hero .container { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; } .hero-title { font-size: 4rem; font-weight: 700; margin-bottom: 1.5rem; background: linear-gradient( 135deg, var(--primary-color) 0%, var(--secondary-color) 100% ); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hero-subtitle { font-size: 1.25rem; color: var(--text-secondary); margin-bottom: 2rem; max-width: 90%; } .hero-stats { display: flex; gap: 2rem; margin-bottom: 3rem; } .stat { display: flex; flex-direction: column; } .stat-number { font-family: var(--font-heading); font-size: 2.5rem; font-weight: 700; color: var(--primary-color); line-height: 1; } .stat-label { font-size: 0.875rem; color: var(--text-tertiary); margin-top: 0.5rem; } .cta-button { display: inline-flex; align-items: center; gap: 0.75rem; padding: 1rem 2rem; background-color: var(--primary-color); color: white; border-radius: var(--radius-md); font-weight: 600; transition: all var(--transition-fast); border: none; cursor: pointer; } .cta-button:hover { background-color: var(--primary-dark); transform: translateY(-2px); box-shadow: var(--shadow-lg); } .hero-visual { position: relative; height: 400px; } .visual-element { position: relative; width: 100%; height: 100%; } .circle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 200px; height: 200px; border-radius: 50%; border: 2px solid var(--primary-color); opacity: 0.3; animation: pulse 4s ease-in-out infinite; } .line { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(45deg); width: 300px; height: 2px; background: linear-gradient( 90deg, transparent, var(--primary-color), transparent ); opacity: 0.5; } .dot { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 12px; height: 12px; border-radius: 50%; background-color: var(--accent-color); animation: float 6s ease-in-out infinite; } @keyframes pulse { 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.3; } 50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.5; } } @keyframes float { 0%, 100% { transform: translate(-50%, -50%); } 50% { transform: translate(-50%, -55%); } } /* Section Styles */ .section { padding: 6rem 0; } .section-header { text-align: center; margin-bottom: 4rem; } .section-title { font-size: 2.75rem; margin-bottom: 1rem; } .section-subtitle { font-size: 1.125rem; color: var(--text-secondary); max-width: 600px; margin: 0 auto; } /* Overview Section */ .overview-content { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; } .overview-text p { font-size: 1.125rem; line-height: 1.8; margin-bottom: 1.5rem; } .overview-highlight { display: flex; flex-direction: column; gap: 2rem; } .highlight-card { padding: 2rem; background-color: var(--bg-secondary); border-radius: var(--radius-lg); border: 1px solid var(--border-color); transition: transform var(--transition-normal), box-shadow var(--transition-normal); } .highlight-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); } .highlight-icon { width: 60px; height: 60px; border-radius: var(--radius-md); background-color: var(--primary-color); color: white; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 1.5rem; } .highlight-title { font-size: 1.5rem; margin-bottom: 0.75rem; } .highlight-text { color: var(--text-secondary); font-size: 1rem; } /* Trends Section */ .trends-grid { display: flex; flex-direction: column; gap: 4rem; } .trend-category { background-color: var(--bg-secondary); border-radius: var(--radius-xl); padding: 3rem; border: 1px solid var(--border-color); } .category-title { display: flex; align-items: center; gap: 0.75rem; font-size: 1.75rem; margin-bottom: 2rem; color: var(--text-primary); } .category-title i { color: var(--primary-color); } .trend-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } .trend-card { padding: 2rem; background-color: var(--bg-primary); border-radius: var(--radius-lg); border: 1px solid var(--border-color); transition: all var(--transition-normal); } .trend-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-xl); border-color: var(--primary-color); } .trend-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; } .trend-badge { padding: 0.375rem 1rem; border-radius: var(--radius-full); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; } .trend-badge.tech { background-color: rgba(59, 130, 246, 0.1); color: var(--primary-color); border: 1px solid rgba(59, 130, 246, 0.2); } .trend-badge.econ { background-color: rgba(139, 92, 246, 0.1); color: var(--secondary-color); border: 1px solid rgba(139, 92, 246, 0.2); } .trend-priority { font-size: 0.75rem; font-weight: 600; padding: 0.25rem 0.75rem; border-radius: var(--radius-full); } .trend-priority.high { background-color: rgba(239, 68, 68, 0.1); color: var(--danger-color); } .trend-priority.medium { background-color: rgba(245, 158, 11, 0.1); color: var(--warning-color); } .trend-name { font-size: 1.5rem; margin-bottom: 1rem; color: var(--text-primary); } .trend-description { color: var(--text-secondary); margin-bottom: 1.5rem; line-height: 1.7; } .trend-metrics { display: flex; gap: 1rem; flex-wrap: wrap; } .metric { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: var(--text-tertiary); } .metric i { color: var(--primary-color); } /* Opportunities Section */ .opportunities-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; margin-bottom: 4rem; } .opportunity-card { padding: 2rem; background-color: var(--bg-secondary); border-radius: var(--radius-lg); border: 1px solid var(--border-color); transition: all var(--transition-normal); text-align: center; } .opportunity-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); } .opportunity-icon { width: 70px; height: 70px; border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; font-size: 1.75rem; margin: 0 auto 1.5rem; color: white; } .opportunity-icon.climate { background: linear-gradient(135deg, #10b981, #059669); } .opportunity-icon.health { background: linear-gradient(135deg, #8b5cf6, #7c3aed); } .opportunity-icon.tech { background: linear-gradient(135deg, #3b82f6, #2563eb); } .opportunity-icon.food { background: linear-gradient(135deg, #f59e0b, #d97706); } .opportunity-title { font-size: 1.5rem; margin-bottom: 1rem; } .opportunity-description { color: var(--text-secondary); margin-bottom: 1.5rem; line-height: 1.6; } .opportunity-market { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; } .market-size { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 700; color: var(--primary-color); } .market-label { font-size: 0.875rem; color: var(--text-tertiary); } .opportunity-highlight { display: grid; grid-template-columns: 2fr 1fr; gap: 3rem; padding: 3rem; background: linear-gradient( 135deg, var(--primary-color), var(--secondary-color) ); border-radius: var(--radius-xl); color: white; } .highlight-content h3 { color: white; margin-bottom: 1rem; } .highlight-content p { color: rgba(255, 255, 255, 0.9); font-size: 1.125rem; line-height: 1.7; } .highlight-stats { display: flex; flex-direction: column; gap: 1.5rem; justify-content: center; } .stat-item { display: flex; flex-direction: column; align-items: center; } .stat-value { font-family: var(--font-heading); font-size: 3rem; font-weight: 700; line-height: 1; } /* Challenges Section */ .challenges-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-bottom: 4rem; } .challenge-card { padding: 2rem; background-color: var(--bg-secondary); border-radius: var(--radius-lg); border: 1px solid var(--border-color); transition: all var(--transition-normal); } .challenge-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); } .challenge-header { margin-bottom: 1.5rem; } .challenge-severity { display: inline-block; padding: 0.25rem 0.75rem; border-radius: var(--radius-full); font-size: 0.75rem; font-weight: 600; margin-bottom: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; } .challenge-severity.high { background-color: rgba(239, 68, 68, 0.1); color: var(--danger-color); } .challenge-severity.medium { background-color: rgba(245, 158, 11, 0.1); color: var(--warning-color); } .challenge-title { font-size: 1.5rem; color: var(--text-primary); } .challenge-description { color: var(--text-secondary); margin-bottom: 1.5rem; line-height: 1.7; } .challenge-mitigation { padding-top: 1rem; border-top: 1px solid var(--border-color); } .mitigation-label { font-weight: 600; color: var(--text-primary); margin-right: 0.5rem; } .mitigation-text { color: var(--text-secondary); } .strategic-implications { background-color: var(--bg-tertiary); border-radius: var(--radius-xl); padding: 3rem; } .implications-title { text-align: center; margin-bottom: 3rem; font-size: 2rem; } .implications-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } .implication { padding: 2rem; background-color: var(--bg-primary); border-radius: var(--radius-lg); border: 1px solid var(--border-color); } .implication h4 { font-size: 1.25rem; margin-bottom: 1rem; color: var(--primary-color); } .implication p { color: var(--text-secondary); line-height: 1.7; } /* Footer */ .footer { background-color: var(--bg-secondary); border-top: 1px solid var(--border-color); padding: 4rem 0 2rem; } .footer-content { display: grid; grid-template-columns: 1fr 2fr; gap: 4rem; margin-bottom: 3rem; } .footer-brand { display: flex; flex-direction: column; gap: 1rem; } .footer-brand .brand-icon { font-size: 2rem; } .footer-brand .brand-text { font-size: 1.5rem; } .footer-description { color: var(--text-secondary); font-size: 0.875rem; } .footer-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; } .link-group { display: flex; flex-direction: column; gap: 0.75rem; } .link-title { font-size: 1rem; font-weight: 600; color: var(--text-primary); margin-bottom: 0.5rem; } .link-group a { color: var(--text-secondary); font-size: 0.875rem; transition: color var(--transition-fast); } .link-group a:hover { color: var(--primary-color); } .footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 2rem; border-top: 1px solid var(--border-color); } .copyright p { font-size: 0.875rem; color: var(--text-tertiary); margin: 0; } .deerflow-branding { opacity: 0.7; transition: opacity var(--transition-fast); } .deerflow-branding:hover { opacity: 1; } .deerflow-link { display: flex; align-items: center; gap: 0.5rem; color: var(--text-tertiary); font-size: 0.875rem; } .deerflow-icon { font-size: 0.875rem; } .deerflow-text { font-family: var(--font-sans); } /* Responsive Design */ @media (max-width: 1024px) { h1 { font-size: 3rem; } h2 { font-size: 2.25rem; } .hero .container { grid-template-columns: 1fr; gap: 3rem; } .hero-visual { height: 300px; } .overview-content { grid-template-columns: 1fr; gap: 3rem; } .opportunity-highlight { grid-template-columns: 1fr; gap: 2rem; } } @media (max-width: 768px) { .container { padding: 0 1rem; } h1 { font-size: 2.5rem; } h2 { font-size: 2rem; } .section { padding: 4rem 0; } .nav-links { display: none; } .hero-stats { flex-direction: column; gap: 1.5rem; } .trend-cards { grid-template-columns: 1fr; } .opportunities-grid { grid-template-columns: 1fr; } .challenges-content { grid-template-columns: 1fr; } .implications-grid { grid-template-columns: 1fr; } .footer-content { grid-template-columns: 1fr; gap: 2rem; } .footer-links { grid-template-columns: 1fr; gap: 1.5rem; } .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; } } /* Animation Classes */ .fade-in { animation: fadeIn 0.8s ease-out forwards; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } /* Scrollbar */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: var(--bg-secondary); } ::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: var(--radius-full); } ::-webkit-scrollbar-thumb:hover { background: var(--text-tertiary); }