@tailwind base; @tailwind components; @tailwind utilities; /* Humanist Design System - Minimalist Typography */ @layer base { :root { /* Color Palette - Brownish Grayscale */ --color-base: #1A1614; --color-text: #2C2520; --color-text-muted: #6B5F55; --color-accent: #8B6F47; --color-accent-hover: #6B5435; --color-background: #F5F3F0; --color-surface: #FFFFFF; --color-border: #D4C9BC; --color-border-subtle: #E8E1D9; /* Typography - Inter & JetBrains Mono from Google Fonts (variables set by Next.js font loader) */ /* Spacing - Generous, Humanist */ --spacing-xs: 0.5rem; /* 8px */ --spacing-sm: 0.75rem; /* 12px */ --spacing-md: 1rem; /* 16px */ --spacing-lg: 1.5rem; /* 24px */ --spacing-xl: 2rem; /* 32px */ --spacing-2xl: 3rem; /* 48px */ --spacing-3xl: 4rem; /* 64px */ /* Typography Scale */ --text-xs: 0.75rem; /* 12px */ --text-sm: 0.875rem; /* 14px */ --text-base: 1rem; /* 16px */ --text-lg: 1.125rem; /* 18px */ --text-xl: 1.25rem; /* 20px */ --text-2xl: 1.5rem; /* 24px */ --text-3xl: 1.875rem; /* 30px */ --text-4xl: 2.25rem; /* 36px */ --text-5xl: 3rem; /* 48px */ /* Line Heights - Comfortable Reading */ --leading-tight: 1.25; --leading-normal: 1.5; --leading-relaxed: 1.75; --leading-loose: 2; /* Max Content Width */ --max-width-content: 1200px; --max-width-narrow: 800px; } * { @apply border-border; } body { @apply bg-background text-text; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: var(--text-base); line-height: var(--leading-relaxed); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } code, pre { font-family: var(--font-mono), 'Roboto Mono', 'Menlo', monospace; } /* Typography Hierarchy */ h1, h2, h3, h4, h5, h6 { @apply font-semibold text-base; line-height: var(--leading-tight); letter-spacing: -0.02em; } h1 { font-size: var(--text-4xl); line-height: var(--leading-tight); @apply mb-6; } h2 { font-size: var(--text-3xl); @apply mb-5; } h3 { font-size: var(--text-2xl); @apply mb-4; } h4 { font-size: var(--text-xl); @apply mb-3; } p { @apply mb-4; line-height: var(--leading-relaxed); } /* Links - Subtle, Humanist */ a { @apply text-accent no-underline; transition: color 0.2s ease; } a:hover { @apply text-accent-hover; text-decoration: underline; text-underline-offset: 2px; } /* Focus States - Accessible */ *:focus-visible { @apply outline-2 outline-offset-2 outline-accent; } } @layer components { /* Container - Max Width with Reduced Padding */ .container-content { @apply px-2; max-width: var(--max-width-content); margin: 0 auto; } .container-narrow { @apply mx-auto px-2; max-width: var(--max-width-narrow); } /* Cards - Minimalist, Sharp, No Rounded Edges */ .card { @apply bg-surface border border-border rounded-none p-4; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05); } .card-hover { @apply card transition-all duration-200; } .card-hover:hover { @apply shadow-md; transform: translateY(-1px); } /* Buttons - Minimalist, Sharp, No Rounded Edges */ .btn { @apply px-4 py-2 rounded-none font-medium transition-all duration-200; @apply focus:outline-none focus:ring-2 focus:ring-offset-2; } .btn-primary { @apply btn bg-accent text-white; @apply hover:bg-accent-hover; @apply focus:ring-accent; } .btn-secondary { @apply btn bg-surface border border-border text-text; @apply hover:bg-border-subtle; @apply focus:ring-border; } .btn-ghost { @apply btn bg-transparent text-text-muted; @apply hover:bg-border-subtle hover:text-text; } /* Tables - Clean, Readable */ .table { @apply w-full border-collapse; } .table th { @apply text-left font-semibold text-xs text-text-muted uppercase tracking-wide; @apply select-none px-3 py-2; } .table td { @apply border-b border-border-subtle px-3 py-2; } .table tbody tr:hover { background-color: rgba(232, 225, 217, 0.3); /* border-subtle with 30% opacity */ } .table tbody tr:last-child td { @apply border-b-0; } /* Badges/Tags - Subtle, Sharp, No Rounded Edges */ .badge { @apply inline-flex items-center px-2.5 py-0.5 rounded-none text-xs font-medium; } .badge-primary { @apply badge text-accent; background-color: rgba(139, 111, 71, 0.1); /* brownish accent with 10% opacity */ } .badge-secondary { @apply badge bg-border text-text-muted; } /* Inputs - Clean, Sharp, No Rounded Edges */ .input { @apply w-full px-4 py-2 border border-border rounded-none; @apply bg-surface text-text; @apply focus:outline-none focus:ring-2 focus:ring-accent focus:border-transparent; @apply transition-all duration-200; } /* Stats Cards */ .stat-card { @apply card; } .stat-value { @apply text-3xl font-semibold text-base mb-1; } .stat-label { @apply text-sm text-text-muted; } } @layer utilities { /* Text Utilities */ .text-balance { text-wrap: balance; } /* Spacing Utilities - Reduced Padding */ .section-padding { @apply py-4 md:py-6; } /* Modal utilities */ .overflow-hidden { overflow: hidden; } /* Scrollable analytics */ .overflow-x-auto { scrollbar-width: thin; scrollbar-color: var(--color-border) transparent; } .overflow-x-auto::-webkit-scrollbar { height: 6px; } .overflow-x-auto::-webkit-scrollbar-track { background: transparent; } .overflow-x-auto::-webkit-scrollbar-thumb { background-color: var(--color-border); border-radius: 0; } .overflow-x-auto::-webkit-scrollbar-thumb:hover { background-color: var(--color-text-muted); } /* Timeline Page Styles */ .timeline-container { max-width: 1200px; margin: 0 auto; padding: 16px 8px; } .timeline-header { margin-bottom: 36px; } .timeline-title { font-size: 28px; font-weight: 600; color: #000000; letter-spacing: -0.5px; margin-bottom: 8px; } .timeline-subtitle { font-size: 14px; color: #737373; margin-bottom: 4px; } .timeline-source { font-size: 13px; color: #737373; font-weight: 500; } .timeline-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; } .year-column { position: relative; } .year-header { font-size: 20px; font-weight: 600; color: #000000; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 2px solid #000000; letter-spacing: -0.3px; } .deals-list { display: flex; flex-direction: column; gap: 16px; } .deal-card { padding: 12px; background: #fafafa; border-left: 3px solid #d4d4d4; transition: all 0.2s; text-decoration: none; display: block; } .deal-card:hover { border-left-color: #000000; background: #f5f5f5; } .deal-parties { font-size: 13px; font-weight: 600; color: #000000; margin-bottom: 3px; letter-spacing: -0.1px; line-height: 1.3; } .deal-value { font-size: 12px; font-weight: 600; color: #404040; margin-bottom: 3px; } .deal-desc { font-size: 11px; color: #737373; line-height: 1.4; } .timeline-footer { margin-top: 32px; padding-top: 20px; border-top: 1px solid #e5e5e5; font-size: 11px; color: #737373; text-align: center; } .timeline-empty { font-size: 11px; color: #737373; font-style: italic; } /* Progress bar - container and fill using CSS custom properties */ .progress-bar-container { @apply w-full bg-border-subtle rounded-none h-1.5 relative overflow-hidden; } .progress-bar-fill { @apply bg-accent h-1.5 rounded-none absolute top-0 left-0 transition-all; width: calc(var(--progress-percentage, 0) * 1%); } /* Legacy progress-bar class for compatibility */ .progress-bar { transition: width 0.3s ease; } }