/* Default to dark mode */
:root {
	--bg-color: #000;
	--text-color: #e0e0e0;
	--heading-color: #4a91c2;
	--accent-color: #3498db;
	--link-color: #61afef;
	--link-hover: #90c1f8;
	--date-color: #a0a0a0;
	--border-color: #444;
	--bullet-color: #61afef;
	--card-bg: #2d2d2d
}

/* Apply dark mode to html and body by default */
html {
	background-color: var(--bg-color);
}

body {
	background-color: var(--bg-color);
	color: var(--text-color);
}

[data-theme="light"] {
	--bg-color: #fff;
	--text-color: #333;
	--heading-color: #2c3e50;
	--accent-color: #3498db;
	--link-color: #2b6ca3;
	--link-hover: #1a4971;
	--date-color: #6c7a89;
	--border-color: #e0e0e0;
	--bullet-color: #3498db;
	--card-bg: #f8f9fa
}

[data-theme="dark"] {
	--bg-color: #000;
	--text-color: #e0e0e0;
	--heading-color: #4a91c2;
	--accent-color: #3498db;
	--link-color: #61afef;
	--link-hover: #90c1f8;
	--date-color: #a0a0a0;
	--border-color: #444;
	--bullet-color: #61afef;
	--card-bg: #2d2d2d
}

body {
	font-family: 'Calibri', 'Lato', monospace;
	line-height: 1.6;
	color: var(--text-color);
	background-color: var(--bg-color);
	max-width: 900px;
	margin: 0 auto;
	padding: 20px;
	transition: background-color .3s, color .3s;
	font-size: 18px
}

header {
	text-align: center;
	margin-bottom: 20px
}

h1 {
	color: var(--heading-color);
	margin-bottom: 5px;
	font-size: 26px
}

h2 {
	color: var(--heading-color);
	border-bottom: 2px solid var(--accent-color);
	padding-bottom: 5px;
	margin-top: 25px;
	font-size: 20px
}

p.jk {
	font-size: 2px;
	color: var(--bg-color);
}

.theme-toggle {
	background-color: var(--accent-color);
	color: #fff;
	border: none;
	padding: 8px 15px;
	border-radius: 20px;
	cursor: pointer;
	font-weight: 700;
	transition: background-color .3s;
	z-index: 100
}

.theme-toggle-container {
	position: fixed;
	top: 10px;
	right: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	z-index: 100
}

.theme-toggle:hover {
	background-color: var(--link-hover)
}

.contact-info {
	text-align: center;
	margin-bottom: 20px
}

.contact-info a {
	color: var(--link-color);
	text-decoration: none;
	margin: 0 10px
}

.contact-info a:hover {
	text-decoration: underline;
	color: var(--link-hover)
}

a {
	color: var(--link-color);
	text-decoration: none;
	transition: color .2s
}

a:hover {
	color: var(--link-hover);
	text-decoration: underline
}

.section {
	margin-bottom: 25px
}

.entry {
	margin-bottom: 15px
}

.entry-header {
	display: flex;
	justify-content: space-between;
	font-weight: 700;
	margin-bottom: 5px
}

.entry-body {
	margin-left: 5px;
	position: relative;
	padding-left: 20px
}

.entry-body:before {
	content: "•";
	position: absolute;
	left: 0;
	color: var(--bullet-color)
}

.date {
	font-style: italic;
	color: var(--date-color);
	font-size: .95em;
	font-weight: 400
}

.role{
	font-style: italic;
	font-size: .95em;
	font-weight: 400;
}

.role-date{
	display: flex;
	justify-content: space-between;
}

.publication {
	margin-bottom: 15px;
	padding-left: 20px;
	text-indent: -20px
}

.publication-id {
	font-weight: 700;
	color: var(--accent-color)
}

.project {
	margin-bottom: 20px
}

.project-header {
	display: flex;
	justify-content: space-between;
	font-weight: 700;
	margin-bottom: 5px;
	align-items: center
}

.project-point {
	margin-left: 20px;
	position: relative;
	margin-bottom: 8px;
	padding-left: 15px
}

.project-point:before {
	content: "›";
	position: absolute;
	left: 0;
	color: var(--bullet-color)
}

.location {
	font-weight: 400;
	color: var(--date-color)
}

.export-buttons {
	position: fixed;
	top: 100px;
	right: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	z-index: 100
}

.export-btn {
	background-color: var(--accent-color);
	color: #fff;
	border: none;
	padding: 8px 15px;
	border-radius: 20px;
	cursor: pointer;
	font-weight: 700;
	transition: background-color .3s;
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 13px
}

.export-btn:hover {
	background-color: var(--link-hover)
}

@media (max-width:768px) {
	body {
		padding: 15px
	}

	.entry-header,
	.project-header {
		flex-direction: column;
		align-items: flex-start
	}

	.contact-info a {
		display: block;
		margin: 5px 0
	}

	.theme-toggle {
		top: 10px;
		right: 10px;
		padding: 5px 10px;
		font-size: .9em
	}

	h1 {
		font-size: 1.8em
	}

	h2 {
		font-size: 1.4em
	}
}

@media screen and (max-width:768px) {
	.export-buttons {
		display: none !important
	}

	.theme-toggle-container {
		display: flex;
		justify-content: center;
		width: 100%
	}

	.theme-toggle-container button {
		display: none
	}

	.theme-toggle-container button:first-child {
		padding: 10px 15px;
		font-size: 16px;
		width: auto;
		margin: 10px auto;
		border-radius: 8px
	}
}

@media screen and (max-width:768px) and ((-webkit-min-device-pixel-ratio:2.5) or (min--moz-device-pixel-ratio:2.5) or (-o-min-device-pixel-ratio:2.5/1) or (min-device-pixel-ratio:2.5) or (min-resolution:402dpi) or (min-resolution:2.5dppx)) {
	.theme-toggle-container button:first-child {
		padding: 12px 18px;
		font-size: 18px;
		font-weight: 500;
		box-shadow: 0 2px 4px rgba(0, 0, 0, .15)
	}

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

	.fab,
	.far,
	.fas {
		text-rendering: optimizeLegibility
	}
}

@media print {
	body {
		margin: 0;
		padding: 0;
		background-color: #fff !important;
		color: #000 !important;
		font-size: 11pt !important;
		line-height: 1.4 !important
	}

	.export-buttons,
	.theme-toggle {
		display: none !important
	}

	h1 {
		font-size: 18pt !important;
		color: #000 !important;
		page-break-after: avoid
	}

	h2 {
		font-size: 14pt !important;
		color: #000 !important;
		page-break-after: avoid;
		border-bottom: 1px solid #000 !important
	}

	.entry-header,
	.project-header {
		font-size: 12pt !important
	}

	.entry-body,
	.project-point {
		font-size: 11pt !important
	}

	.date {
		font-size: 10pt !important;
		color: #555 !important
	}

	.role{
		font-size: 10pt !important;
		color: #555 !important
	}

	a {
		color: #000 !important;
		text-decoration: none !important
	}

	.entry,
	.project,
	.publication {
		page-break-inside: avoid
	}

	.entry-body:before,
	.project-point:before {
		color: #000 !important
	}

	p.jk {
		color: #fff !important
	}

	@page {
		size: letter;
		margin: 0.75in
	}

	@page :first {
		size: letter;
		margin: 0.75in
	}
}