@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
	:root {
		--font-geist-sans: 'Geist Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
			Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
		--background: 0 0% 100%;
		--foreground: 240 10% 3.9%;

		--muted: 240 4.8% 95.9%;
		--muted-foreground: 240 3.8% 46.1%;

		--popover: 0 0% 100%;
		--popover-foreground: 240 10% 3.9%;

		--card: 0 0% 100%;
		--card-foreground: 240 10% 3.9%;

		--border: 240 5.9% 90%;
		--input: 240 5.9% 90%;

		--primary: 240 5.9% 10%;
		--primary-foreground: 0 0% 98%;

		--secondary: 240 4.8% 95.9%;
		--secondary-foreground: 240 5.9% 10%;

		--accent: 240 4.8% 95.9%;
		--accent-foreground: 240 5.9% 10%;

		--destructive: 0 72.22% 50.59%;
		--destructive-foreground: 0 0% 98%;

		--ring: 240 5% 64.9%;

		--radius: 0.5rem;
	}

	.dark {
		--background: 240 10% 3.9%;
		--foreground: 0 0% 98%;

		--muted: 240 3.7% 15.9%;
		--muted-foreground: 240 5% 64.9%;

		--popover: 240 10% 3.9%;
		--popover-foreground: 0 0% 98%;

		--card: 240 10% 3.9%;
		--card-foreground: 0 0% 98%;

		--border: 240 3.7% 15.9%;
		--input: 240 3.7% 15.9%;

		--primary: 0 0% 98%;
		--primary-foreground: 240 5.9% 10%;

		--secondary: 240 3.7% 15.9%;
		--secondary-foreground: 0 0% 98%;

		--accent: 240 3.7% 15.9%;
		--accent-foreground: 0 0% 98%;

		--destructive: 0 62.8% 30.6%;
		--destructive-foreground: 0 85.7% 97.3%;

		--ring: 240 3.7% 15.9%;
	}
}
@layer base {
	* {
		@apply border-border;
	}
	html {
		-webkit-text-size-adjust: 100%;
		font-variation-settings: normal;
	}
	body {
		@apply bg-background text-foreground;
		font-feature-settings:
			'rlig' 1,
			'calt' 1;
	}

	/* Mobile tap highlight */
	/* https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-tap-highlight-color */
	html {
		-webkit-tap-highlight-color: rgba(128, 128, 128, 0.5);
	}

	/* Font face Geist font */

	@font-face {
		font-family: 'Geist Sans';
		font-style: normal;
		font-weight: 400;
		font-display: swap;
		src: url('/fonts/Geist/Geist-Regular.woff2') format('woff2');
	}

	@font-face {
		font-family: 'Geist Sans';
		font-style: normal;
		font-weight: 500;
		font-display: swap;
		src: url('/fonts/Geist/Geist-Medium.woff2') format('woff2');
	}

	@font-face {
		font-family: 'Geist Sans';
		font-style: normal;
		font-weight: 600;
		font-display: swap;
		src: url('/fonts/Geist/Geist-SemiBold.woff2') format('woff2');
	}

	@font-face {
		font-family: 'Geist Sans';
		font-style: normal;
		font-weight: 700;
		font-display: swap;
		src: url('/fonts/Geist/Geist-Bold.woff2') format('woff2');
	}

	/* === Scrollbars === */

	::-webkit-scrollbar {
		@apply w-2;
		@apply h-2;
	}

	::-webkit-scrollbar-track {
		@apply !bg-muted;
	}
	::-webkit-scrollbar-thumb {
		@apply rounded-sm !bg-muted-foreground/30;
	}

	/* Firefox */
	/* https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color#browser_compatibility */
	html {
		scrollbar-color: hsl(215.4 16.3% 46.9% / 0.3);
	}

	html.dark {
		scrollbar-color: hsl(215.4 16.3% 56.9% / 0.3);
	}

	.hide-scrollbar::-webkit-scrollbar {
		display: none;
	}

	.hide-scrollbar {
		-ms-overflow-style: none;
		scrollbar-width: none;
	}

	.antialised {
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
}

@layer utilities {
	.step {
		counter-increment: step;
	}

	.step:before {
		@apply absolute inline-flex h-9 w-9 items-center justify-center rounded-full border-4 border-background bg-muted text-center -indent-px font-mono text-base font-medium;
		@apply ml-[-50px] mt-[-4px];
		content: counter(step);
	}
}

@media (max-width: 640px) {
	.container {
		@apply px-4;
	}
}

.mdsvex code {
	@apply relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm;
}

[data-theme='default'] {
	display: flex;
}

[data-style='new-york'] [data-style='default'] {
	display: none;
}

[data-style='default'] [data-style='default'] {
	display: flex;
	flex-direction: column;
}

[data-style='new-york'] [data-style='new-york'] {
	display: flex;
	flex-direction: column;
}

[data-style='default'] [data-style='new-york'] {
	display: none;
}

[data-rehype-pretty-code-fragment] {
	@apply relative;
}

[data-rehype-pretty-code-fragment] code {
	@apply grid min-w-full break-words rounded-none border-0 bg-transparent p-0;
	counter-reset: line;
	box-decoration-break: clone;
}

[data-rehype-pretty-code-fragment] .line {
	@apply inline-block min-h-[1rem] w-full px-4 py-0.5;
}

[data-rehype-pretty-code-fragment] [data-line-numbers] .line {
	@apply px-2;
}

[data-rehype-pretty-code-fragment] [data-line-numbers] > .line::before {
	@apply text-xs text-zinc-50/40;
	counter-increment: line;
	content: counter(line);
	display: inline-block;
	width: 1.8rem;
	margin-right: 1.4rem;
	text-align: right;
}

[data-metadata] .pre-copy-btn {
	@apply top-16 !important;
}

[data-rehype-pretty-code-fragment] .line--highlighted {
	@apply bg-zinc-700/50;
}

[data-rehype-pretty-code-fragment] .with--meta {
	@apply top-16 !important;
}

[data-rehype-pretty-code-fragment] .line-highlighted span {
	@apply relative;
}

[data-rehype-pretty-code-fragment] .word--highlighted {
	@apply rounded-md border-zinc-700/70 bg-zinc-700/50 p-1;
}

.dark [data-rehype-pretty-code-fragment] .word--highlighted {
	@apply bg-zinc-900;
}

[data-rehype-pretty-code-title] {
	@apply mt-2 px-4 pt-6 text-sm font-medium;
}

[data-rehype-pretty-code-title] + pre {
	@apply mt-2;
}

.super-debug {
	@apply bg-zinc-950 text-[#FFF8] dark:bg-zinc-900 !important;
}

.super-debug--pre {
	@apply !bg-transparent !text-[#FFF8];
}

.super-debug--code {
	@apply !bg-transparent;
}

.super-debug--code .key {
	@apply text-white !important;
}

.super-debug--code .undefined {
	@apply !text-[#FFF8];
}
.super-debug--code .string {
	@apply !text-[#FFF8];
}
.super-debug--code .number {
	@apply !text-[#FFF8];
}
.super-debug--code .boolean {
	@apply !text-[#FFF8];
}
