@font-face {
	font-family: 'Noto Serif';
	src: url('../fonts/NotoSerif-Regular.ttf') format('truetype');
	font-weight: 400;
	font-style: normal;
}

@font-face {
	font-family: 'Noto Serif';
	src: url('../fonts/NotoSerif-Italic.ttf') format('truetype');
	font-weight: 400;
	font-style: italic;
}

@font-face {
	font-family: 'Noto Serif';
	src: url('../fonts/NotoSerif-SemiBold.ttf') format('truetype');
	font-weight: 700;
	font-style: normal;
}

@font-face {
	font-family: 'Noto Serif';
	src: url('../fonts/NotoSerif-SemiBoldItalic.ttf') format('truetype');
	font-weight: 700;
	font-style: italic;
}

* {
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}

.skip {
	position: absolute;
	top: -50px;
	left: 0;
	color: blue;
	padding: 4px 8px;
	background: #eef;
	border: 2px solid blue;
	overflow: hidden;
	z-index: 1000;
}
.skip:focus {
	top: 6px;
	left: 6px;
}

html {
	font-size: 100%;
}
html, body {
	overflow-x: hidden;
}

hr {
	border: none;
	border-bottom: 1px solid #ccc;
}
h3 {
	margin-top: 20px;
}
ul {
	padding-left: 16px;
}
li {
	margin-bottom: 4px;
}
li:last-child {
	margin-bottom: 0;
}
li a:hover {
	background-color: #eeecff;
	border-bottom: 1px solid blue;
	border-top: 1px solid blue;
	text-decoration: none;
}
li a:active {
	background-color: #ffeeee;
	border-bottom-color: red;
	border-top-color: red;
}
a:visited {
	color: blue;
}
button {
	background: none;
	background-color: #eee;
	border: 1px solid black;
	border-radius: 20px;
	padding: 0px 8px;
	cursor: pointer;
}
button:hover {
	background-color: #ddf;
}
.mono {
	color: #222;
	background: #eee;
	padding: 1px 4px;
	border: 1px solid #ccc;
	font-family: monospace;
	font-size: 14px;
	overflow-wrap: anywhere;
}
.image, .video {
	display: flex;
	justify-self: center;
	max-width: 400px;
	background-color: #f5f5f5;
	border: 1px solid #bbb;
	padding: 12px;
	margin-top: 10px;
	margin-bottom: 10px;
}
img, video {
	max-width: 100%;
	border: 1px solid #ccc;
	transition: 0.2s;
}
video {
	max-width: 200px;
}
details {
	background-color: #eee;
	padding: 10px 14px;
	overflow: auto;
}
summary {
	cursor: pointer;
}
details p, .subarticle p {
	margin-top: 10px;
}
.scroll_wrap {
	position: relative;
	width: 100%;
	overflow: auto;
}
details .scroll_wrap, .subarticle .scroll_wrap {
	margin-top: 10px;
}
details ul, .subarticle ul {
	padding-left: 16px;
}
pre {
	white-space: pre;
	max-width: 100%;
	padding: 1em;
	background-color: #f1f1f1;
	font-size: 14px;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: thin;
}
pre::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 2em;
	height: 100%;
	pointer-events: none;
	background: linear-gradient(to left, rgba(0, 0, 0, 0.12), transparent);
}
details pre, .subarticle pre {
	background-color: #ddd;
	border-bottom: 1px solid #aaa;
}

table {
	margin: 0 auto;
	max-width: 400px;
	border-collapse: collapse;
}
th {
	background-color: #f1f1f1;
}
td, th {
	border: 1px solid #ddd;
	text-align: left;
	padding: 6px;
}
tr:nth-child(even) {
	background-color: #fafafa;
}
a:focus-visible, summary:focus-visible {
	color: blue;
	outline: 3px blue dashed;
	outline-offset: 2px;
}
.posts a:focus-visible {
	outline-offset: -2px;
}
.article p a {
	color: #001e99;
}
.article p a:hover {
	background-color: #f1f9ff;
	outline: 1px dashed blue;
	text-decoration: underline;
}
.article_changelog {
	margin-top: 20px;
}
#edit-01 {
	transition: background-color 0.3s;
}
#edit-01:target {
	animation: flash-highlight 2s ease-out;
}
@keyframes flash-highlight {
	0% {
		background-color: #fcfc8d;
	}

	100% {
		background-color: #eee;
	}
}

/* ========================================================================== */

.header_content {
	width: 100%;
	height: 42px;
	background: linear-gradient(90deg, #2e0072, #7300e5);
	background-size: 100% 100%;
	pointer-events: none;
	user-select: none;
}
.header_title {
	position: relative;
	color: #bbb;
	font-size: 24px;
	padding: 6px 12px;
	z-index: 100;
}
.carret {
	color: #999;
	animation: blink 1s step-start infinite;
}
@keyframes blink {
	0% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.header_content_s4 {
	background: linear-gradient(90deg, #a00, black);
	overflow: clip;
}
.header_title_s4 {
	color: #e1e1e1;
}
.carret_s4 {
	color: #e1e1e1;
}

.header_logo {
	position: absolute;
	top: 0;
	right: 0;
	margin-right: 16px;

	width: 92px;
	height: 92px;
	background: url('../logos/s4logo.png') no-repeat center/contain;
	animation: glowPulse 2s infinite alternate;
}
@keyframes glowPulse {
	0% {
		filter: drop-shadow(0 0 1px #100)
		drop-shadow(0 0 0px #100)
		drop-shadow(0 0 1px #100);
	}
	50% {
		filter: drop-shadow(0 0 2px #a00)
		drop-shadow(0 0 0px rgba(170,0,0,.5))
		drop-shadow(0 0 2px #a00);
	}
	100% {
		filter: drop-shadow(0 0 1px #500)
		drop-shadow(0 0 0px #500)
		drop-shadow(0 0 1px #500);
	}
}

.hexagons {
	display: flex;
	flex-direction: column;
	width: 100%;
	right: 0;
	height: 42px;
	position: absolute;
	z-index: 0;
}
.row {
	display: flex;
	flex-wrap: nowrap;
	flex-direction: row-reverse;
	width: 100%;
	margin-top: -5px;
	overflow: hidden;
}
.row:nth-child(even) {
	transform: translateX(-12px);
}
.hexagon {
	flex: 0 0 auto;
	position: relative;
	height: 26px;
	width: 22px;
	background: #500;
	margin: 1px;
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

.menu {
	width: 100%;
	height: 28px;
	background-color: #ddd;

	background: linear-gradient(
		to right,
		#ddd 0%,
		#ddd 40%,
		#ccc 50%,
		#ccc 60%,
		#bbb 70%,
		#bbb 80%,
		#aaa 90%,
		#aaa 100%
	);

	display: flex;
	align-items: center;
	user-select: none;
}
.menu_items {
	display: flex;
	gap: 12px;
	margin-left: 12px;
}
.menu_items a {
	text-decoration: none;
}
.menu_items a:hover {
	text-decoration: underline;
}
.menu_items a:active {
	color: blue;
	scale: 0.9;
}

/* ========================================================================== */

.main {
	max-width: 600px;
}

.post {
	display: flex;
	gap: 6px;
	flex-direction: column;
	font-family: 'Noto Serif', serif;
	padding: 12px;
	text-decoration: none;
	border-bottom: 1px solid #ccc;
}
.post_header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.post_title {
	width: fit-content;
	font-size: 18px;
	color: black;
}
.post_date {
	width: 140px;
	text-align: right;
	font-size: 14px;
	color: #888;
}
.post_preview {
	font-size: 16px;
	color: #555;
}
.post_tags {
	display: flex;
	gap: 8px;
}
.post_tag {
	font-size: 14px;
	padding: 2px 6px;
	color: #555;
	background-color: #e1e1e1;
}
.post:hover h1 {
	text-decoration: underline;
	text-decoration-thickness: 2px;
}
.post:active {
	transform: scale(0.99);
	background-color: #f7f7f7;
}
.post:active h1 {
	text-decoration: none;
}

/* ========================================================================== */

.article {
	display: grid;
	grid-gap: 6px;

	margin: 20px 32px;
	font-family: 'Noto Serif', serif;
}
.article_title {
	font-size: 28px;
}
.article_subtitle {
	color: dimgrey;
	margin-top: 20px;
}
.article_author {
	color: #555;
	font-weight: normal;
	font-size: 14px;
}
.article_content {
	display: grid;
	grid-gap: 12px;
	margin-top: 12px;
}
.fabulous {
	color: black;
	font-family: 'Lobster', cursive;
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 2px;
	position: relative;
	display: inline-block;
	animation: glow 2s infinite alternate, textAnimation 3s ease-in-out infinite;
}

.table_of_contents {
	list-style: square;
	line-height: 26px;
}

.subarticle {
	display: grid;
	grid-gap: 10px;
	width: 100%;
	padding: 16px;
	background-color: #eee;
}
.subarticle_title {
	font-size: 18px;
	font-weight: bold;
	text-align: center;
}
.subarticle_subtitle {
	margin: 0 !important;
	color: #555;
	text-align: center;
}
.subarticle .mono {
    background-color: #ddd;
}
.subarticle .image {
	background-color: #ddd;
}
.subarticle p a:hover {
	background-color: #e4e1ea;
}
.review {
	display: flex;
	gap: 10px;
	flex-direction: column;
	padding: 12px 16px;
	background-color: #ddd;
}

/* ========================================================================== */

.about {
	display: grid;
	grid-gap: 10px;
	margin: 12px;
	font-family: 'Noto Serif', serif;
}
.about_tags {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.about_tag {
	color: #222;
	background-color: #ddd;
	padding: 4px 8px;
}

.footer_content {
	margin: 12px;
}

footer img {
	border: none;
}

footer img:hover {
	transform: none;
	transition: none;
	box-shadow: none;
}

/* ========================================================================== */

@media only screen and (max-width:500px) {
	.menu_items a, .menu_items p {
		font-size: 18px;
		line-height: 22px;
	}

	.post_header {
		flex-direction: column;
		gap: 4px;
		align-items: flex-start;
	}
	.post_date {
		text-align: left;
	}

	.article {
		margin: 20px;
	}

	p {
		line-height: 22px;
	}
	details ul {
		padding-left: 18px;
	}
	li {
		margin-bottom: 6px;
	}
	.table_of_contents {
		font-size: 16px;
	}
}

@media (hover: hover) and (pointer: fine) {
	img:hover {
		transform: scale(1.1);
		transition: transform 0.3s ease;
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
	}
}