@import "tailwindcss"; @import "tw-animate-css"; @plugin "@tailwindcss/typography"; @custom-variant dark (&:is(.dark *)); @theme { --font-sans: var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --animate-fade-in: fade-in 1s; @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } } @theme inline { --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --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-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); --color-app: var(--app-background); --color-brand: var(--brand); --animate-aurora: aurora 8s ease-in-out infinite alternate; @keyframes aurora { 0% { background-position: 0% 50%; transform: rotate(-5deg) scale(0.9); } 25% { background-position: 50% 100%; transform: rotate(5deg) scale(1.1); } 50% { background-position: 100% 50%; transform: rotate(-3deg) scale(0.95); } 75% { background-position: 50% 0%; transform: rotate(3deg) scale(1.05); } 100% { background-position: 0% 50%; transform: rotate(-5deg) scale(0.9); } } } :root { --radius: 0.625rem; --app-background: #fffaf5; --background: oklch(1 0 0); --foreground: rgba(0, 0, 0, 0.72); --card: oklch(1 0 0); --card-foreground: var(--foreground); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); --primary: oklch(0.205 0 0); --primary-foreground: oklch(0.985 0 0); --secondary: oklch(0.97 0 0); --secondary-foreground: oklch(0.205 0 0); --muted: oklch(0.97 0 0); --muted-foreground: oklch(0.556 0 0); --accent: oklch(0.97 0 0); --accent-foreground: oklch(0.205 0 0); --destructive: oklch(0.577 0.245 27.325); --border: oklch(0.922 0 0); --input: oklch(0.922 0 0); --ring: oklch(0.708 0 0); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --sidebar: oklch(0.985 0 0); --sidebar-foreground: oklch(0.145 0 0); --sidebar-primary: oklch(0.205 0 0); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.97 0 0); --sidebar-accent-foreground: oklch(0.205 0 0); --sidebar-border: oklch(0.922 0 0); --sidebar-ring: oklch(0.708 0 0); --brand: #007aff; --novel-highlight-default: #ffffff; --novel-highlight-purple: #f6f3f8; --novel-highlight-red: #fdebeb; --novel-highlight-yellow: #fbf4a2; --novel-highlight-blue: #c1ecf9; --novel-highlight-green: #acf79f; --novel-highlight-orange: #faebdd; --novel-highlight-pink: #faf1f5; --novel-highlight-gray: #f1f1ef; } .dark { --background: oklch(0.145 0 0); --app-background: var(--background); --foreground: oklch(0.985 0 0); --card: oklch(0.205 0 0); --card-foreground: oklch(0.985 0 0); --popover: oklch(0.205 0 0); --popover-foreground: oklch(0.985 0 0); --primary: oklch(0.922 0 0); --primary-foreground: oklch(0.205 0 0); --secondary: oklch(0.269 0 0); --secondary-foreground: oklch(0.985 0 0); --muted: oklch(0.269 0 0); --muted-foreground: oklch(0.708 0 0); --accent: oklch(0.269 0 0); --accent-foreground: oklch(0.985 0 0); --destructive: oklch(0.704 0.191 22.216); --border: oklch(1 0 0 / 10%); --input: oklch(1 0 0 / 15%); --ring: oklch(0.556 0 0); --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: oklch(0.205 0 0); --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.269 0 0); --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(1 0 0 / 10%); --sidebar-ring: oklch(0.556 0 0); --brand: #4087f4; --novel-highlight-default: #000000; --novel-highlight-purple: #3f2c4b; --novel-highlight-red: #5c1a1a; --novel-highlight-yellow: #5c4b1a; --novel-highlight-blue: #1a3d5c; --novel-highlight-green: #1a5c20; --novel-highlight-orange: #5c3a1a; --novel-highlight-pink: #5c1a3a; --novel-highlight-gray: #3a3a3a; } @layer base { * { @apply border-border outline-ring/50; } body { @apply text-foreground; } } input, textarea { outline: none; } .markdown { line-height: 1.75; a { text-decoration: underline; text-decoration-style: dotted; text-underline-position: from-font; text-decoration-color: var(--muted-foreground); &:hover { text-decoration: underline; } } h1 { @apply text-2xl font-bold; margin-top: 0.5rem; margin-bottom: 0.5rem; } h2 { @apply text-xl font-bold; margin-top: 0.5rem; margin-bottom: 0.5rem; } h3 { @apply text-lg font-bold; margin-top: 0.5rem; margin-bottom: 0.5rem; } h4 { @apply text-base font-bold; margin-bottom: 0.5rem; } h5 { @apply text-sm font-bold; } h6 { @apply text-xs font-bold; } ul { @apply list-disc pl-4; } ol { @apply list-decimal pl-4; } img { display: block; max-width: 100%; margin: 0 auto; } table { @apply w-full; table-layout: fixed; border-collapse: collapse; th, td { padding: 4px 8px; border: 1px solid var(--border); } th { @apply bg-muted; } } code:not([class*="language-"]) { @apply bg-muted; @apply rounded-md; @apply px-1; @apply py-0.5; @apply border; } blockquote { @apply border-muted-foreground text-muted-foreground border-l-2 pl-2; } } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground; } }