/* ============================================================
   EYECOSYSTEMS — Investor Pages Static CSS
   Replaces cdn.tailwindcss.com on av/, bridgeav/, flfunders/,
   innoimpact/, invest/. Classes match Tailwind v3 semantics
   for the utility set actually used on these pages.
   Regenerate with: (no build step — edit in place)
   ============================================================ */

/* ── Skip link (WCAG 2.4.1) ── */
.skip-link {
  position: absolute;
  top: -100px;
  left: 1rem;
  background: #00F5D0;
  color: #000;
  min-height: 48px; display: inline-flex; align-items: center;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.5rem 1rem;
  border-radius: 4px;
  z-index: 9999;
  text-decoration: none;
}
.skip-link:focus { top: 0.5rem; }

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Inter', system-ui, sans-serif;
  color: #1f2937;
  background: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  min-height: 100vh;
}

/* ── Display ── */
.block  { display: block; }
.flex   { display: flex; }
.grid   { display: grid; }
.hidden { display: none !important; }
.inline-flex { display: inline-flex; }

/* ── Flex ── */
.flex-col       { flex-direction: column; }
.flex-1         { flex: 1 1 0%; }
.flex-shrink-0  { flex-shrink: 0; }
.items-center   { align-items: center; }
.items-start    { align-items: flex-start; }
.justify-center { justify-content: center; }
.self-start     { align-self: flex-start; }
.min-w-0        { min-width: 0; }

/* ── Grid ── */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* ── Gap ── */
.gap-2  { gap: 0.5rem; }
.gap-3  { gap: 0.75rem; }
.gap-4  { gap: 1rem; }
.gap-5  { gap: 1.25rem; }
.gap-6  { gap: 1.5rem; }
.gap-8  { gap: 2rem; }
.gap-12 { gap: 3rem; }

/* ── Padding ── */
.p-1\.5 { padding: 0.375rem; }
.p-2    { padding: 0.5rem; }
.p-4    { padding: 1rem; }
.p-5    { padding: 1.25rem; }
.px-1   { padding-left: 0.25rem; padding-right: 0.25rem; }
.px-4   { padding-left: 1rem; padding-right: 1rem; }
.py-2   { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.py-3   { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-5   { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.pt-3   { padding-top: 0.75rem; }
.pb-2   { padding-bottom: 0.5rem; }

/* ── Margin ── */
.mb-1   { margin-bottom: 0.25rem; }
.mb-3   { margin-bottom: 0.75rem; }
.mb-5   { margin-bottom: 1.25rem; }
.mb-6   { margin-bottom: 1.5rem; }
.mt-1   { margin-top: 0.25rem; }
.mt-3   { margin-top: 0.75rem; }
.mx-0\.5 { margin-left: 0.125rem; margin-right: 0.125rem; }
.mx-auto { margin-left: auto; margin-right: auto; }

/* ── Width / Height ── */
.w-14   { width: 3.5rem; }
.w-16   { width: 4rem; }
.h-14   { height: 3.5rem; }
.h-16   { height: 4rem; }
.w-full { width: 100%; }
.min-h-screen  { min-height: 100vh; }
.min-h-\[48px\] { min-height: 48px; }
.max-w-7xl    { max-width: 80rem; }
.max-w-prose  { max-width: 65ch; }

/* ── Object fit ── */
.object-contain { object-fit: contain; }

/* ── Overflow ── */
.overflow-hidden { overflow: hidden; }

/* ── Text size ── */
.text-\[9px\]      { font-size: 9px; }
.text-\[10px\]     { font-size: 10px; }
.text-\[11px\]     { font-size: 11px; }
.text-\[15px\]     { font-size: 15px; }
.text-\[1\.625rem\] { font-size: 1.625rem; }
.text-sm  { font-size: 0.875rem; line-height: 1.25rem; }
.text-base { font-size: 1rem; line-height: 1.5rem; }
.text-lg  { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl  { font-size: 1.25rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }

/* ── Font weight ── */
.font-normal   { font-weight: 400; }
.font-medium   { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold     { font-weight: 700; }

/* ── Line height ── */
.leading-none  { line-height: 1; }
.leading-tight { line-height: 1.25; }
.leading-snug  { line-height: 1.375; }

/* ── Letter spacing ── */
.tracking-tight       { letter-spacing: -0.025em; }
.tracking-wider       { letter-spacing: 0.05em; }
.tracking-\[0\.18em\]  { letter-spacing: 0.18em; }
.tracking-\[0\.2em\]   { letter-spacing: 0.2em; }

/* ── Text transform ── */
.uppercase { text-transform: uppercase; }

/* ── Text align ── */
.text-center { text-align: center; }
.text-left   { text-align: left; }

/* ── Numeric ── */
.tabular-nums { font-variant-numeric: tabular-nums; }

/* ── Colors ── */
.text-black             { color: #000; }
.text-white             { color: #fff; }
.text-gray-400          { color: #9ca3af; }
.text-gray-500          { color: #6b7280; }
.text-gray-600          { color: #4b5563; }
.text-gray-700          { color: #374151; }
.text-gray-800          { color: #1f2937; }
.text-\[\#077A75\]      { color: #077A75; }
.text-\[\#00F5D0\]      { color: #00F5D0; }
.text-white\/80         { color: rgba(255,255,255,0.8); }
.text-white\/75         { color: rgba(255,255,255,0.75); }
.text-white\/90         { color: rgba(255,255,255,0.9); }
.text-white\/60         { color: rgba(255,255,255,0.6); }

.bg-white               { background-color: #fff; }
.bg-black               { background-color: #000; }
.bg-gray-50             { background-color: #f9fafb; }
.bg-gray-100            { background-color: #f3f4f6; }
.bg-mintTint            { background-color: #E6F6F5; }
.bg-ink                 { background-color: #0A0F1A; }
.bg-\[\#80142B\]        { background-color: #80142B; }
.bg-white\/10           { background-color: rgba(255,255,255,0.10); }

.border-gray-200        { border-color: #e5e7eb; }
.border-mint            { border-color: #01A39E; }
.border-black           { border-color: #000; }
.border-\[\#00F5D0\]    { border-color: #00F5D0; }
.border-t               { border-top-width: 1px; }
.border-l-4             { border-left-width: 4px; }
.border-white\/15       { border-color: rgba(255,255,255,0.15); }

.border                 { border-width: 1px; border-style: solid; }
.border-2               { border-width: 2px; border-style: solid; }

/* ── Border radius ── */
.rounded-lg   { border-radius: 0.5rem; }
.rounded-xl   { border-radius: 0.75rem; }
.rounded-2xl  { border-radius: 1rem; }
.rounded-r-lg { border-top-right-radius: 0.5rem; border-bottom-right-radius: 0.5rem; }

/* ── Shadow ── */
.shadow-lg                  { box-shadow: 0 10px 15px -3px rgba(0,0,0,0.10), 0 4px 6px -4px rgba(0,0,0,0.10); }
.shadow-xl                  { box-shadow: 0 20px 25px -5px rgba(0,0,0,0.10), 0 8px 10px -6px rgba(0,0,0,0.10); }
.shadow-\[\#80142B\]\/20    { box-shadow: 0 10px 15px -3px rgba(128,20,43,0.20); }
.shadow-gray-900\/10        { box-shadow: 0 20px 25px -5px rgba(17,24,39,0.10); }

/* ── Antialiased ── */
.antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* ── Transitions ── */
.transition-all       { transition-property: all; transition-timing-function: cubic-bezier(0.4,0,0.2,1); transition-duration: 150ms; }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4,0,0.2,1); transition-duration: 150ms; }
.duration-200         { transition-duration: 200ms; }

/* ── Hover states (group pattern) ── */
a:hover .group-hover\:text-\[\#00F5D0\]   { color: #00F5D0; }
a:hover .group-hover\:translate-x-0\.5   { transform: translateX(0.125rem); }

/* ── Responsive: sm (≥640px) ── */
@media (min-width: 640px) {
  .sm\:px-6    { padding-left: 1.5rem; padding-right: 1.5rem; }
  .sm\:py-8    { padding-top: 2rem; padding-bottom: 2rem; }
  .sm\:gap-8   { gap: 2rem; }
  .sm\:w-16    { width: 4rem; }
  .sm\:h-16    { height: 4rem; }
  .sm\:text-2xl { font-size: 1.5rem; line-height: 2rem; }
  .sm\:text-xl  { font-size: 1.25rem; line-height: 1.75rem; }
  .sm\:p-4      { padding: 1rem; }
  .sm\:text-lg  { font-size: 1.125rem; line-height: 1.75rem; }
}

/* ── Responsive: lg (≥1024px) ── */
@media (min-width: 1024px) {
  .lg\:px-12        { padding-left: 3rem; padding-right: 3rem; }
  .lg\:grid-cols-2  { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg\:gap-12       { gap: 3rem; }
  .lg\:text-\[1\.625rem\] { font-size: 1.625rem; }
  .lg\:p-5          { padding: 1.25rem; }
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
