*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; background: #0a0e17; color: #c8d0e0; min-height: 100vh; }

/* --- Text hierarchy --- */
.text-primary { color: #e2e8f0; }
.text-secondary { color: #94a3b8; }
.text-muted { color: #64748b; }
.text-dim { color: #475569; }

/* --- Surfaces --- */
.surface { background: #0f172a; }
.surface-raised { background: #111827; }
.border-subtle { border-color: #1e293b; }
.border-mid { border-color: #334155; }

/* --- Nav bar --- */
.museum-nav {
  position: fixed; top: 0; left: 0; right: 0; height: 40px; z-index: 100;
  background: #0a0e17cc; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid #1e293b;
  display: flex; align-items: center; gap: 0;
  overflow-x: auto; white-space: nowrap;
  view-transition-name: nav;
}
.museum-nav::-webkit-scrollbar { height: 0; }
.museum-nav a {
  display: inline-flex; align-items: center; height: 40px;
  padding: 0 14px; font-size: 12px; font-weight: 500;
  color: #64748b; text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color 0.15s, border-color 0.15s;
  flex-shrink: 0;
}
.museum-nav a:hover { color: #94a3b8; }
.museum-nav a.active { color: #e2e8f0; border-bottom-color: #3b82f6; }
.museum-nav .nav-home {
  font-weight: 600; color: #e2e8f0; letter-spacing: -0.3px;
  padding: 0 16px;
}
.museum-nav .nav-home:hover { color: #f1f5f9; }

/* --- Exhibit layout (full viewport minus nav) --- */
.exhibit { position: fixed; top: 40px; left: 0; right: 0; bottom: 0; }
.exhibit-chart { width: 100%; height: 100%; }

/* --- Domain color utilities --- */
.domain-neuroscience { color: #3b82f6; }
.domain-AI { color: #f59e0b; }
.domain-education { color: #10b981; }
.domain-psychology { color: #8b5cf6; }
.domain-computer-science { color: #ef4444; }
.bg-domain-neuroscience { background: #3b82f633; }
.bg-domain-AI { background: #f59e0b33; }
.bg-domain-education { background: #10b98133; }
.bg-domain-psychology { background: #8b5cf633; }
.bg-domain-computer-science { background: #ef444433; }

/* --- Badges --- */
.badge {
  display: inline-block; padding: 2px 8px; border-radius: 3px;
  font-size: 11px; font-weight: 500; background: #1e293b; color: #94a3b8;
}
.type-badge { display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 11px; font-weight: 500; }
.type-quantitative { background: #1e40af33; color: #60a5fa; }
.type-qualitative { background: #065f4633; color: #34d399; }
.type-claim { background: #78350f33; color: #fbbf24; }

/* --- Confidence bars --- */
.conf-bar { height: 4px; border-radius: 2px; background: #1e293b; width: 60px; display: inline-block; vertical-align: middle; }
.conf-fill { height: 100%; border-radius: 2px; }

/* --- Tables --- */
.findings-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.findings-table th { text-align: left; padding: 8px 12px; background: #1e293b; color: #94a3b8; font-weight: 500; font-size: 12px; text-transform: uppercase; letter-spacing: 0.3px; }
.findings-table td { padding: 8px 12px; border-bottom: 1px solid #1e293b; }
.findings-table tr:hover td { background: #111827; }

/* --- Info overlay button --- */
.info-btn {
  position: fixed; bottom: 16px; left: 16px; z-index: 50;
  width: 32px; height: 32px; border-radius: 50%;
  background: #1e293b; border: 1px solid #334155; color: #94a3b8;
  font-size: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background 0.15s;
}
.info-btn:hover { background: #334155; color: #e2e8f0; }
.info-overlay {
  position: fixed; bottom: 56px; left: 16px; z-index: 50;
  max-width: 360px; padding: 16px; border-radius: 8px;
  background: #111827ee; border: 1px solid #1e293b;
  font-size: 13px; line-height: 1.5; color: #94a3b8;
  display: none;
}
.info-overlay.open { display: block; }
.info-overlay h3 { font-size: 14px; color: #e2e8f0; margin-bottom: 6px; }

/* --- Screen reader only --- */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* --- View transitions --- */
@view-transition { navigation: auto; }
::view-transition-old(nav), ::view-transition-new(nav) { animation: none; }

/* --- Reduced motion --- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001s !important;
    transition-duration: 0.001s !important;
  }
}
