@import "tailwindcss"; /* Instrument Serif for literary headings + DM Sans for clean UI */ @import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=DM+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@400;500&display=swap'); @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-amber: var(--amber); --color-amber-foreground: var(--amber-foreground); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --font-serif: 'Instrument Serif', Georgia, serif; --font-sans: 'DM Sans', system-ui, sans-serif; --font-mono: 'JetBrains Mono', monospace; } /* ── Light: warm parchment ── */ :root { --radius: 0.375rem; --background: oklch(0.97 0.008 80); --foreground: oklch(0.18 0.015 55); --card: oklch(0.99 0.005 80); --card-foreground: oklch(0.18 0.015 55); --popover: oklch(0.99 0.005 80); --popover-foreground: oklch(0.18 0.015 55); --primary: oklch(0.62 0.14 55); --primary-foreground: oklch(0.99 0.005 80); --secondary: oklch(0.93 0.01 80); --secondary-foreground: oklch(0.25 0.02 55); --muted: oklch(0.93 0.008 80); --muted-foreground: oklch(0.42 0.03 55); --accent: oklch(0.93 0.012 55); --accent-foreground: oklch(0.25 0.02 55); --destructive: oklch(0.55 0.2 25); --destructive-foreground: oklch(0.98 0 0); --border: oklch(0.82 0.015 75); --input: oklch(0.82 0.015 75); --ring: oklch(0.62 0.14 55); --amber: oklch(0.75 0.15 70); --amber-foreground: oklch(0.25 0.05 55); } /* ── Dark: neutral charcoal + amber accent ── */ .dark { --background: #111111; --foreground: #e8e6e3; --card: #191919; --card-foreground: #e8e6e3; --popover: #191919; --popover-foreground: #e8e6e3; --primary: #d4a046; --primary-foreground: #111111; --secondary: #252525; --secondary-foreground: #d4d0cb; --muted: #252525; --muted-foreground: #a09a93; --accent: #2a2826; --accent-foreground: #d4d0cb; --destructive: #e5584f; --destructive-foreground: #ffffff; --border: #333333; --input: #2a2a2a; --ring: #d4a046; --amber: #d4a046; --amber-foreground: #111111; } body { font-family: var(--font-sans); font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; background-color: var(--background); color: var(--foreground); } /* Subtle grain texture */ body::before { content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 50; opacity: 0.03; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); } /* Serif headings */ h1, h2, h3 { font-family: var(--font-serif); letter-spacing: -0.01em; }