/* Feuille séparée plutôt qu'un bloc <style> : cela permet une politique de
   contenu stricte, sans 'unsafe-inline'. */

:root {
	--ink: #12213a;
	--paper: #fbfcfd;
	--muted: #5b6b82;
	--accent: #1f5fa8;
	--rule: #dbe3ed;
}

@media (prefers-color-scheme: dark) {
	:root {
		--ink: #e8edf5;
		--paper: #0d1727;
		--muted: #93a3b8;
		--accent: #7fb0e8;
		--rule: #24344b;
	}
}

* { box-sizing: border-box; }

body {
	margin: 0;
	padding: 2rem 1.5rem 4rem;
	background: var(--paper);
	color: var(--ink);
	font: 16px/1.65 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}

main {
	max-width: 34rem;
	margin: 0 auto;
}

header {
	padding: 3.5rem 0 2.5rem;
	border-bottom: 1px solid var(--rule);
}

h1 {
	margin: 0 0 .5rem;
	font-size: clamp(2rem, 7vw, 2.75rem);
	line-height: 1.1;
	letter-spacing: -.02em;
}

.tagline {
	margin: 0;
	color: var(--muted);
	font-size: 1.05rem;
}

h2 {
	margin: 2.5rem 0 1rem;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--accent);
}

.projects {
	margin: 0;
	padding: 0;
	list-style: none;
}

.projects li {
	padding: 1rem 0;
	border-bottom: 1px solid var(--rule);
}

.projects a {
	display: inline-block;
	margin-bottom: .2rem;
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--ink);
	text-decoration: none;
	border-bottom: 2px solid var(--accent);
}

.projects a:hover,
.projects a:focus-visible {
	color: var(--accent);
}

.projects span {
	display: block;
	color: var(--muted);
	font-size: .94rem;
}

footer {
	margin-top: 3rem;
	color: var(--muted);
	font-size: .9rem;
}

footer p { margin: 0 0 .75rem; }

footer a {
	color: var(--accent);
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

footer a:hover,
footer a:focus-visible {
	border-bottom-color: currentColor;
}
