@tailwind base; @tailwind components; @tailwind utilities; body { font-family: 'Inter', sans-serif; } /* Custom utilities if needed, but prefer Tailwind classes */ .glass-panel { background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); } .dark .glass-panel { background: rgba(15, 23, 42, 0.6); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 4px 30px rgba(0, 0, 0, 0.5); } /* ADHD-Friendly Features */ /* Bionic Reading Support */ .bionic-text { font-feature-settings: 'kern' 1; letter-spacing: 0.01em; word-spacing: 0.05em; } /* TTS Karaoke Highlight */ .tts-highlight { background: linear-gradient(120deg, rgba(14, 165, 233, 0.2) 0%, rgba(139, 92, 246, 0.2) 100%); padding: 2px 4px; border-radius: 4px; transition: all 150ms ease; } /* Progressive Disclosure Animations */ @keyframes layer-expand { from { opacity: 0; transform: translateY(-10px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } .layer-content { animation: layer-expand 0.3s ease-out forwards; } /* Focus Indicators for Accessibility */ button:focus-visible, a:focus-visible { outline: 2px solid #0ea5e9; outline-offset: 2px; } /* Reduce motion for users who prefer it */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } } /* Custom scrollbar for the sidebar */ .custom-scrollbar { scrollbar-width: thin; scrollbar-color: rgba(156, 163, 175, 0.3) transparent; } .custom-scrollbar::-webkit-scrollbar { width: 6px; } .custom-scrollbar::-webkit-scrollbar-track { background: transparent; } .custom-scrollbar::-webkit-scrollbar-thumb { background-color: rgba(156, 163, 175, 0.3); border-radius: 3px; } .custom-scrollbar::-webkit-scrollbar-thumb:hover { background-color: rgba(156, 163, 175, 0.5); } /* Source anchor highlight */ .source-anchor-highlight { background: linear-gradient( to bottom, transparent 60%, rgba(14, 165, 233, 0.3) 60% ); } /* Interactive chart hover effects */ .chart-interactive:hover { filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.1)); } /* Reading progress gradient */ .reading-progress-bar { background: linear-gradient( 90deg, #0ea5e9 0%, #8b5cf6 50%, #ec4899 100% ); } /* Mini-map active indicator pulse */ @keyframes minimap-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(14, 165, 233, 0.4); } 50% { box-shadow: 0 0 0 4px rgba(14, 165, 233, 0); } } .minimap-active { animation: minimap-pulse 2s ease-in-out infinite; }