/* vkuikka.com */

:root {
	--ink: #16181d;
	--dim: #5f6570;
	--paper: #fdfdfc;
	--line: #e6e6e3;
	--link: #1657d0;
}

@media (prefers-color-scheme: dark) {
	:root {
		--ink: #e8eaed;
		--dim: #9aa3ad;
		--paper: #101215;
		--line: #262a30;
		--link: #7fb2ff;
	}
}

* { box-sizing: border-box; }

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font: 400 1rem/1.6 system-ui, -apple-system, "Segoe UI", sans-serif;
	-webkit-font-smoothing: antialiased;
}

main {
	max-width: 34rem;
	margin-inline: auto;
	padding: clamp(3rem, 12vh, 7rem) 1.5rem 4rem;
}

a { color: var(--link); text-underline-offset: 3px; }
a:hover { color: var(--ink); }

.skip {
	position: absolute;
	left: -9999px;
}

.skip:focus {
	left: 1rem;
	top: 1rem;
	padding: 0.5rem 0.75rem;
	background: var(--paper);
	border: 1px solid var(--line);
}

h1 {
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	margin: 0 0 0.2rem;
}

.role { margin: 0; }

.lead {
	margin: 1.4rem 0 0;
	color: var(--ink);
}

section { margin-top: 3.5rem; }

article + article { margin-top: 2.5rem; }

.label {
	margin: 0;
	font-size: 0.8rem;
	color: var(--dim);
}

h2 {
	font-size: 0.85rem;
	font-weight: 400;
	color: var(--dim);
	margin: 0 0 1.5rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--line);
}

h3 {
	font-size: 1rem;
	font-weight: 600;
	margin: 0.1rem 0 0.2rem;
}

h3 a { color: inherit; text-decoration-color: var(--dim); }
h3 a:hover { color: var(--link); text-decoration-color: currentColor; }

p { margin: 0; color: var(--dim); }

footer {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.4rem;
	margin-top: 3.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--line);
	font-size: 0.9rem;
}

:focus-visible { outline: 2px solid var(--link); outline-offset: 3px; }
