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

:root {
	--font-size: 16px;
	--background: #ffffff;
	--foreground: oklch(0.145 0 0);
	--card: #ffffff;
	--card-foreground: oklch(0.145 0 0);
	--popover: oklch(1 0 0);
	--popover-foreground: oklch(0.145 0 0);
	--primary: #030213;
	--primary-foreground: oklch(1 0 0);
	--secondary: oklch(0.95 0.0058 264.53);
	--secondary-foreground: #030213;
	--muted: #ececf0;
	--muted-foreground: #717182;
	--accent: #e9ebef;
	--accent-foreground: #030213;
	--destructive: #d4183d;
	--destructive-foreground: #ffffff;
	--border: rgba(0, 0, 0, 0.1);
	--input: transparent;
	--input-background: #f3f3f5;
	--switch-background: #cbced4;
	--font-weight-medium: 500;
	--font-weight-normal: 400;
	--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);
	--radius: 0.625rem;
	--sidebar: oklch(0.985 0 0);
	--sidebar-foreground: oklch(0.145 0 0);
	--sidebar-primary: #030213;
	--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);
}

.dark {
	--background: oklch(0.145 0 0);
	--foreground: oklch(0.985 0 0);
	--card: oklch(0.145 0 0);
	--card-foreground: oklch(0.985 0 0);
	--popover: oklch(0.145 0 0);
	--popover-foreground: oklch(0.985 0 0);
	--primary: oklch(0.985 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.396 0.141 25.723);
	--destructive-foreground: oklch(0.637 0.237 25.331);
	--border: oklch(0.269 0 0);
	--input: oklch(0.269 0 0);
	--ring: oklch(0.439 0 0);
	--font-weight-medium: 500;
	--font-weight-normal: 400;
	--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(0.269 0 0);
	--sidebar-ring: oklch(0.439 0 0);
}

@layer base {
	* {
		@apply border-gray-200;
	}

	body {
		@apply bg-white text-gray-900;
	}
}

/**
 * Base typography.
 */
@layer base {
	h1 {
		@apply text-2xl font-medium leading-normal;
	}

	h2 {
		@apply text-xl font-medium leading-normal;
	}

	h3 {
		@apply text-lg font-medium leading-normal;
	}

	h4 {
		@apply text-base font-medium leading-normal;
	}

	p {
		@apply text-base font-normal leading-normal;
	}

	label {
		@apply text-base font-medium leading-normal;
	}

	button {
		@apply text-base font-medium leading-normal;
	}

	input {
		@apply text-base font-normal leading-normal;
	}
}

html {
	font-size: var(--font-size);
}

/* Dialog centering */
.dialog-center {
	transform: translate(-50%, -50%);
}

/* Responsive card positioning utilities */
:root {
	--card-scale-mobile: 0.85;
	--card-scale-tablet: 0.92;
	--card-scale-desktop: 1;
	--rotation-mobile: 0.5deg;
	--rotation-tablet: 1deg;
	--rotation-desktop: 2deg;
	--viewport-padding: clamp(1rem, 4vw, 2rem);
}

/* Responsive card container */
.card-container {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	min-height: 100vh;
	justify-content: center;
	align-items: center;
}

@media (min-width: 640px) {
	.card-container {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		grid-template-rows: repeat(3, 1fr);
		gap: 1rem;
		min-height: 100vh;
		max-width: 1600px;
		margin: 0 auto;
		padding: 2rem;
	}
}

/* Base card styles */
.card {
	background: white;
	border: 2px solid #d1d5db;
	padding: 1.5rem;
	border-radius: 0.5rem;
	width: 100%;
	max-width: 400px;
	font-family: serif;
	contain: layout style;
}

.quotes-card {
	transform: rotate(-1deg);
	box-shadow:
		0 4px 6px -1px rgba(0, 0, 0, 0.1),
		0 8px 25px -5px rgba(0, 0, 0, 0.1),
		0 16px 32px -8px rgba(0, 0, 0, 0.1),
		0 24px 48px -12px rgba(0, 0, 0, 0.15);
}

.main-card {
	transform: rotate(0.5deg);
	box-shadow:
		0 6px 8px -2px rgba(0, 0, 0, 0.1),
		0 12px 30px -6px rgba(0, 0, 0, 0.15),
		0 20px 40px -10px rgba(0, 0, 0, 0.2),
		0 32px 60px -16px rgba(0, 0, 0, 0.25);
}

.social-card {
	transform: rotate(1deg);
	box-shadow:
		0 6px 8px -2px rgba(0, 0, 0, 0.1),
		0 12px 30px -6px rgba(0, 0, 0, 0.15),
		0 20px 40px -10px rgba(0, 0, 0, 0.2),
		0 28px 55px -14px rgba(0, 0, 0, 0.25);
}

.tech-card {
	transform: rotate(-0.5deg);
	box-shadow:
		0 8px 10px -3px rgba(0, 0, 0, 0.1),
		0 16px 35px -8px rgba(0, 0, 0, 0.15),
		0 24px 45px -12px rgba(0, 0, 0, 0.2),
		0 36px 65px -18px rgba(0, 0, 0, 0.3);
}

.ascii-card {
	transform: rotate(0.5deg);
	box-shadow:
		0 4px 6px -1px rgba(0, 0, 0, 0.1),
		0 8px 25px -5px rgba(0, 0, 0, 0.1),
		0 16px 32px -8px rgba(0, 0, 0, 0.1),
		0 24px 48px -12px rgba(0, 0, 0, 0.15);
}

.projects-card {
	transform: rotate(-0.5deg);
	box-shadow:
		0 4px 6px -1px rgba(0, 0, 0, 0.1),
		0 8px 25px -5px rgba(0, 0, 0, 0.1),
		0 16px 32px -8px rgba(0, 0, 0, 0.1),
		0 24px 48px -12px rgba(0, 0, 0, 0.15);
}

/* ASCII Art specific styles */
.ascii-art-container {
	overflow: hidden;
	max-width: 100%;
}

.ascii-art {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	line-height: 1;
	margin: 0;
	font-size: 0.34rem;
	white-space: pre;
	color: #1f2937;
}

@media (min-width: 640px) {
	.ascii-art {
		font-size: 0.4rem;
	}
}

/* Desktop card positioning and rotation */
@media (min-width: 640px) {
	.main-card {
		grid-column: 2 / 3;
		grid-row: 1 / 3;
		transform: rotate(1deg);
		height: auto;
		width: auto;
	}

	.quotes-card {
		grid-column: 1 / 2;
		grid-row: 1 / 2;
		transform: rotate(-2deg);
	}

	.social-card {
		grid-column: 2 / 3;
		grid-row: 3 / 4;
		transform: rotate(1.5deg);
	}

	.tech-card {
		grid-column: 3 / 4;
		grid-row: 2 / 3;
		transform: rotate(-1deg);
	}

	.ascii-card {
		grid-column: 1 / 2;
		grid-row: 2 / 4;
		transform: rotate(1.5deg);
	}

	.projects-card {
		grid-column: 3 / 4;
		grid-row: 3 / 4;
		transform: rotate(-1deg);
	}
}

/* Screen reader only */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}
