@tailwind base; @tailwind components; @tailwind utilities; /* Dark theme (default) - CSS custom properties */ :root { --bg: #060b10; --bg2: #0c1520; --surface: #101e2d; --border: #182840; --accent: #a855f7; --accent2: #00ff88; --accent-glow: rgba(168, 85, 247, 0.12); --text: #c4d6e8; --text-dim: #7a9bb8; --muted: #304860; } /* Light theme overrides */ html.theme-light { --bg: #ffffff; --bg2: #f8f9fa; --surface: #f0f3f7; --border: #d9dfe8; --accent: #9333ea; --accent2: #10b981; --accent-glow: rgba(147, 51, 234, 0.1); --text: #1f2937; --text-dim: #374151; --muted: #d1d5db; } @layer base { body { @apply bg-bg text-text font-body; } h1, h2, h3, h4, h5, h6 { @apply font-bold; font-family: 'Oxanium', monospace; } h1 { @apply text-3xl md:text-4xl; } h2 { @apply text-2xl md:text-3xl; } h3 { @apply text-xl md:text-2xl; } a { @apply text-accent hover:opacity-80 transition-opacity; } code { @apply font-mono bg-surface border border-border px-1.5 py-0.5 rounded text-accent2; } pre { background-color: rgba(16, 30, 45, 0.8); @apply p-4 rounded border border-border overflow-x-auto; } html.theme-light pre { background-color: rgba(240, 243, 247, 0.8); } pre code { @apply bg-transparent border-0 p-0 text-text; } *:focus { @apply ring-2 ring-accent ring-offset-2; ring-offset-color: var(--bg); } button, input, textarea, select { @apply transition-colors duration-200; } } @layer components { .container { @apply max-w-4xl mx-auto; } /* Background utilities */ .bg-bg { background-color: var(--bg); } .bg-bg2 { background-color: var(--bg2); } .bg-surface { background-color: var(--surface); } /* Border utilities */ .border-border { border-color: var(--border); } /* Text color utilities */ .text-accent { color: var(--accent); } .text-accent2 { color: var(--accent2); } .text-text { color: var(--text); } .text-text-dim { color: var(--text-dim); } /* Additional semantic utilities */ .text-muted { color: var(--muted); } .bg-muted { background-color: var(--muted); } /* Glow effect utility */ .glow-accent { box-shadow: 0 0 20px var(--accent-glow); } } /* Prose overrides for light theme */ html.theme-light .prose, html.theme-light .prose-invert { color: var(--text); } html.theme-light .prose a, html.theme-light .prose-invert a { color: var(--accent); } html.theme-light .prose strong, html.theme-light .prose-invert strong { color: var(--text); } html.theme-light .prose code, html.theme-light .prose-invert code { color: var(--accent2); } html.theme-light .prose pre, html.theme-light .prose-invert pre { background-color: var(--surface); color: var(--text); } html.theme-light .prose h1, html.theme-light .prose h2, html.theme-light .prose h3, html.theme-light .prose h4, html.theme-light .prose h5, html.theme-light .prose h6, html.theme-light .prose-invert h1, html.theme-light .prose-invert h2, html.theme-light .prose-invert h3, html.theme-light .prose-invert h4, html.theme-light .prose-invert h5, html.theme-light .prose-invert h6 { color: var(--text); } html.theme-light .prose blockquote, html.theme-light .prose-invert blockquote { color: var(--text); border-left-color: var(--accent); } /* Responsive utilities */ @media (max-width: 768px) { .sm\:container { @apply max-w-full px-4; } } @media (min-width: 769px) { .md\:container { @apply max-w-4xl; } }