*,
*::before,
*::after {
	box-sizing: border-box;
}

:root {
	scroll-behavior: smooth;
}

body {
	font-family: 'Lato', system-ui, sans-serif;
	line-height: 1.5;
	margin: 0 auto;
	max-width: 50em;
	padding: 0 2em;
}

p {
	text-align: justify;
	hyphens: auto;
	-webkit-hyphens: auto;
}

a {
	color: inherit;
}

header {
	margin-top: 1em;
	display: flex;
}

header a {
	padding: 0 0.4em;
	text-decoration: none;
	transition-duration: 0s;
}

header a:first-child {
	padding-left: 0;
}

header a:last-child {
	padding-right: 0;
}

header:has(a:hover) a:not(:hover) {
	opacity: 0.3;
	transition: opacity 150ms;
}

.magic {
	padding-inline-start: 0;
}

.magic > li {
	scroll-margin-top: 25vh;
	transition-duration: 0s;
}

.magic:has(:is(li:hover, :target)) > :not(:is(li:hover, :target)) {
	opacity: 0.3;
	transition: opacity 150ms;
}

.magic > li > a {
	display: block;
	text-decoration: none;
}

.magic:has(:target) > li:not(:target) > a:not(:hover) {
	opacity: 0.5;
}

.magic > li article {
	display: none;
	max-width: 30em;
}

.magic > li:target article {
	display: block;
}

.magic > li article ul {
	margin: 1em 0;
	padding: 0;
}

.next-wr {
	position: fixed;
	bottom: 1em;
	left: 50%;
	transform: translate(-50%, 0);
	max-width: 50em;
	width: 100%;
	padding: 0 1em;
	display: flex;
	justify-content: flex-end;
	pointer-events: none;
}

.next {
	border-radius: 100%;
	color: transparent;
	padding: 0;
	border: none;
	background: black;
	width: 3rem;
	height: 3rem;
	cursor: pointer;
	touch-action: manipulation;
	pointer-events: initial;
}
