body {
	line-height: 1.6;
	font-size: 1rem;
	font-feature-settings:
		'kern' 1,
		'liga' 1,
		'calt' 1;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

@media (min-width: 48rem) {
	body {
		font-size: 1.1rem;
	}
}

@media (min-width: 80rem) {
	body {
		font-size: 1.125rem;
	}
}

:where(h1, h2, h3, h4, h5, h6) {
	margin: var(--space-3xl) 0 var(--space-lg);
	line-height: 1.2;
	font-family: var(--accentFont);
	font-weight: 700;
	color: var(--primary);
	text-wrap: balance;
	letter-spacing: -0.02em;
}

h1 {
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	margin: 0 0 var(--space-xl);
	font-weight: 800;
	background: linear-gradient(135deg, var(--primary), var(--accent));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

h2 {
	font-size: clamp(1.875rem, 4vw, 3rem);
	font-weight: 700;
}

h3 {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 600;
}

h4 {
	font-size: clamp(1.25rem, 2.5vw, 1.875rem);
	font-weight: 600;
}

h5 {
	font-size: clamp(1.125rem, 2vw, 1.5rem);
	font-weight: 600;
}

h6 {
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	font-weight: 600;
}

p {
	margin-bottom: var(--space-lg);
	color: var(--secondary);
	line-height: 1.7;
}

a {
	color: var(--accent);
	text-decoration: none;
	transition: all 0.2s ease;
	position: relative;
}

a:hover {
	color: var(--accent-dark);
}

/* Only add underlines to content links, not navigation or card links */
.post p a,
.post ul a,
.post ol a,
article p a,
article ul a,
article ol a {
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

.post p a:hover,
.post ul a:hover,
.post ol a:hover,
article p a:hover,
article ul a:hover,
article ol a:hover {
	text-decoration-color: var(--accent-dark);
	text-underline-offset: 3px;
}

blockquote {
	margin: var(--space-xl) 0;
	padding: var(--space-lg) var(--space-xl);
	border-left: 4px solid var(--accent);
	background: var(--surface);
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
	font-style: italic;
	position: relative;
}

blockquote::before {
	content: '"';
	font-size: 4rem;
	color: var(--accent);
	position: absolute;
	top: -10px;
	left: var(--space-md);
	line-height: 1;
	opacity: 0.3;
}

ul,
ol {
	margin-bottom: var(--space-lg);
	padding-left: var(--space-xl);
}

ul {
	list-style: none;
}

/* Only add custom bullets to content lists, not navigation */
.post ul li,
article ul li {
	position: relative;
	margin-bottom: var(--space-sm);
	padding-left: var(--space-md);
}

.post ul li::before,
article ul li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.7em;
	width: 6px;
	height: 6px;
	background: var(--accent);
	border-radius: 50%;
	transform: translateY(-50%);
}

/* Reset navigation lists */
.nav-list li,
.footer-links li {
	padding-left: 0;
	margin-bottom: 0;
}

.nav-list li::before,
.footer-links li::before {
	display: none;
}

ol li {
	margin-bottom: var(--space-sm);
	color: var(--secondary);
}

strong,
b {
	font-weight: 600;
	color: var(--primary);
}

em,
i {
	font-style: italic;
	color: var(--secondary);
}

code:not(pre code) {
	background: var(--surface-raised);
	padding: 0.125em 0.375em;
	border-radius: var(--radius-sm);
	font-family: var(--codeFont);
	font-size: 0.875em;
	color: var(--accent-dark);
	border: 1px solid var(--border);
}

pre {
	background: var(--primary);
	color: var(--surface);
	padding: var(--space-lg);
	border-radius: var(--radius-lg);
	overflow-x: auto;
	margin: var(--space-xl) 0;
	font-family: var(--codeFont);
	line-height: 1.5;
}

pre code {
	background: none;
	padding: 0;
	border: none;
	color: inherit;
}

hr {
	border: none;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--border), transparent);
	margin: var(--space-3xl) 0;
}

mark {
	background: linear-gradient(120deg, var(--accent) 0%, var(--accent) 100%);
	background-repeat: no-repeat;
	background-size: 100% 0.2em;
	background-position: 0 88%;
	color: inherit;
	padding: 0;
}
