@import 'tailwindcss'; @plugin '@tailwindcss/typography'; @plugin 'tailwindcss-animate'; @custom-variant dark (&:is(.dark *)); @theme inline { --font-sans: Geist, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; --font-mono: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; --color-background: var(--background); --color-foreground: var(--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-additive: var(--additive); --color-additive-foreground: var(--additive-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-border: var(--border); --color-ring: var(--ring); } @font-face { font-family: 'Geist'; src: url('/fonts/GeistVF.woff2') format('woff2-variations'); font-weight: 100 900; font-style: normal; font-display: swap; } @font-face { font-family: 'Geist Mono'; src: url('/fonts/GeistMonoVF.woff2') format('woff2-variations'); font-weight: 100 900; font-style: normal; font-display: swap; } :root { --background: hsl(0 0% 100%); --foreground: hsl(0 0% 3.9%); --primary: hsl(0 0% 9%); --primary-foreground: hsl(0 0% 98%); --secondary: hsl(0 0% 80.1%); --secondary-foreground: hsl(0 0% 9%); --muted: hsl(0 0% 80.1%); --muted-foreground: hsl(0 0% 45.1%); --accent: hsl(0 0% 80.1%); --accent-foreground: hsl(0 0% 9%); --additive: hsl(112 50% 36%); --additive-foreground: hsl(0 0% 9%); --destructive: hsl(0 84.2% 60.2%); --destructive-foreground: hsl(0 0% 98%); --border: hsl(0 0% 89.8%); --ring: hsl(0 0% 3.9%); } .dark { --background: hsl(0 0% 3.9%); --foreground: hsl(0 0% 98%); --primary: hsl(0 0% 98%); --primary-foreground: hsl(0 0% 9%); --secondary: hsl(0 0% 14.9%); --secondary-foreground: hsl(0 0% 98%); --muted: hsl(0 0% 14.9%); --muted-foreground: hsl(0 0% 63.9%); --accent: hsl(0 0% 14.9%); --accent-foreground: hsl(0 0% 98%); --additive: hsl(112 50% 36%); --additive-foreground: hsl(0 0% 9%); --destructive: hsl(0 62.8% 30.6%); --destructive-foreground: hsl(0 0% 98%); --border: hsl(0 0% 14.9%); --ring: hsl(0 0% 83.1%); } @layer base { *, ::after, ::before, ::backdrop, ::file-selector-button { border-color: var(--color-border, currentColor); } html { color-scheme: light; @apply bg-background text-foreground; &.dark { color-scheme: dark; } ::-webkit-scrollbar-corner { @apply bg-transparent; } } .disable-transitions, .disable-transitions * { @apply transition-none!; } } @layer components { article { @apply prose-headings:scroll-mt-20 prose-headings:break-words [&>section]:first:prose-headings:mt-0!; @apply prose-p:break-words; @apply prose-a:break-words! prose-a:decoration-muted-foreground! prose-a:underline-offset-[3px] prose-a:transition-colors prose-a:hover:decoration-foreground!; @apply prose-pre:px-0! prose-img:mx-auto; .katex-display { @apply overflow-x-auto overflow-y-hidden py-4; } /* Removes background from elements */ mark { @apply bg-transparent; } /* Adjacent expressive-code blocks */ div.expressive-code:has(+ div.expressive-code) { @apply mb-4; } /* Inline code */ :not(pre) > code { @apply bg-muted/50 relative rounded-sm px-[0.3rem] py-[0.2rem] font-mono text-sm font-medium before:content-none! after:content-none!; } } }