/* Header */
.header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0;
	border-bottom: 3px dotted var(--secondary-color);
}

.header h1 {
	color: var(--primary-color);
	font-size: 4rem;
	font-family: var(--heading-font);
	-webkit-transform: scale(1, 1.25);
	-ms-transform: scale(1, 1.25);
	transform: scale(1, 1.25);
	margin: 1rem 0;
}

.header p {
	font-size: 0.9rem;
	text-align: right;
}

/* Two-column layout */
.main-content {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 2rem;
	padding: 2.25rem 0.25rem 2.25rem 0.25rem;
}

.sidebar {
	/* 1/3 width */
}

.sidebar p {
	font-size: 1rem;
}

.posts {
	max-height: 80vh;
	width: 99%;
	overflow-y: auto;
	padding-right: 1rem;
	overflow-x: hidden;
	margin-top: -5px;
}
.posts article {
	margin-bottom: 2rem;
}

p.post-meta {
	font-size: 0.9rem;
	color: var(--secondary-color);
	margin-bottom: 1rem;
}

p.post-content {
	margin-bottom: 1.5rem;
}

/* Mailing list */
.mailing-list {
	display: flex;
	justify-content: center;
	gap: 1rem;
	padding: 2rem;
	border-top: 3px dotted var(--secondary-color);
	border-bottom: 3px dotted var(--secondary-color);
}
.mailing-list input {
	padding: 0.75rem;
	width: 250px;
	font-family: var(--main-font);
}
.mailing-list button {
	padding: 0.75rem 1.5rem;
	font-family: var(--main-font);
}

/* Footer */
footer {
	text-align: center;
	padding: 5rem 0;
}

/* Placeholder for loading state */

.placeholder {
	color: transparent;
	background-color: #eee;
	position: relative;
	overflow: hidden;
	display: inline-block;
	width: fit-content;
}

.placeholder::after {
	content: "";
	position: absolute;
	top: 0;
	left: -150%;
	width: 150%;
	height: 100%;
	background: linear-gradient(
		120deg,
		transparent 0%,
		rgba(255, 255, 255, 0.6) 50%,
		transparent 100%
	);
	animation: shine 1.2s infinite;
}

.placeholder-paragraph {
	font-size: 1rem;
	line-height: 1.5;
}
.placeholder-paragraph .line {
	display: block;
	width: var(--w); /* control per‑line width */
	height: 1em; /* matches line-height */
	margin-bottom: 0.5em; /* gap between lines */
	background: #eee;
	position: relative;
	overflow: hidden;
}
.placeholder-paragraph .line::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(
		120deg,
		transparent 0%,
		rgba(255, 255, 255, 0.6) 50%,
		transparent 100%
	);
	animation: shine 1.2s infinite;
}

@keyframes shine {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(100%);
	}
}

/* Retro scrollbar */

.scroll::-webkit-scrollbar {
	width: 12px;
	height: 12px;
}

.scroll::-webkit-scrollbar-track {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAFElEQVQIW2M4fPz0////GYAYyAIASnoKpV3w4kgAAAAASUVORK5CYII=");
	image-rendering: pixelated;
	-webkit-filter: grayscale(100%);
	-moz-filter: grayscale(100%);
	-ms-filter: grayscale(100%);
	-o-filter: grayscale(100%);
	filter: grayscale(100%);
}

.scroll::-webkit-scrollbar-track:active {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAEElEQVQIW2No6+pjgAAgCwAWogM9VKrgGQAAAABJRU5ErkJggg==");
	-webkit-filter: grayscale(100%);
	-moz-filter: grayscale(100%);
	-ms-filter: grayscale(100%);
	-o-filter: grayscale(100%);
	filter: grayscale(100%);
}

.scroll::-webkit-scrollbar-thumb {
	border-top: 1px solid #cccccc;
	border-left: 1px solid #cccccc;
	border-right: 1px solid black;
	border-bottom: 1px solid black;
	box-shadow: inset 1px 1px 0 0 white, inset -1px -1px 0 0 #868a8e;
	width: 12px;
	height: 12px;
	background-color: #cccccc;
	z-index: 1;
}

.scroll::-webkit-scrollbar-corner {
	background-color: #cccccc;
}

.scroll::-webkit-resizer {
	width: 12px;
	height: 12px;
	background-color: #cccccc;
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAN0lEQVR4Ae3MgQUAMBRDwU5fFF05lb/CARTBw2Ulof0DxPtcwp3hNuEYnjbcEW4TjuFpwx3h9gMWGgZ2Y/PT2gAAAABJRU5ErkJggg==");
	background-position: bottom right;
	background-repeat: no-repeat;
	image-rendering: pixelated;
}

.scroll::-webkit-scrollbar-button {
	border-top: 1px solid #cccccc;
	border-left: 1px solid #cccccc;
	border-right: 1px solid black;
	border-bottom: 1px solid black;
	box-shadow: inset 1px 1px 0 0 white, inset -1px -1px 0 0 #868a8e;
	display: block;
	width: 12px;
	height: 12px;
	background-color: #cccccc;
	image-rendering: pixelated;
	background-repeat: no-repeat;
	background-position: center center;
}

.scroll::-webkit-scrollbar-button:active {
	background-position: 0.1px 0.1px;
}

.scroll::-webkit-scrollbar-button:horizontal:decrement {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAQAAAD8fJRsAAAAHklEQVQY02NgoBT8xyX8H5fwf1zCpOjAYwceV1EEAAO2D/HsQ4vsAAAAAElFTkSuQmCC");
}

.scroll::-webkit-scrollbar-button:horizontal:increment {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAQAAAD8fJRsAAAAHUlEQVQY02NgIB/8xy3xH7fEf9wS/0nUQZqrKAYAK44P8ZRmzLQAAAAASUVORK5CYII=");
}

.scroll::-webkit-scrollbar-button:vertical:decrement {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAGklEQVR4AWMYxuA/SYphmETFhDX9x4mHGQAAcL4P8dQiMq8AAAAASUVORK5CYII=");
}

.scroll::-webkit-scrollbar-button:vertical:increment {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAQAAAD8fJRsAAAAF0lEQVQY02NgoBf4jwJxSOHQhcNAOgMAWWAP8Rv2U3UAAAAASUVORK5CYII=");
}

.scroll::-webkit-scrollbar-button:horizontal:increment:start,
.scroll::-webkit-scrollbar-button:horizontal:decrement:end,
.scroll::-webkit-scrollbar-button:vertical:increment:start,
.scroll::-webkit-scrollbar-button:vertical:decrement:end {
	display: none;
}

::-webkit-scrollbar-button:active {
	border-top: 1px solid #868a8e;
	border-left: 1px solid #868a8e;
	border-bottom: 1px solid #868a8e;
	border-right: 1px solid #868a8e;
	box-shadow: none;
}

/* Responsive styles */

@media (max-width: 1200px) {
	.header h1 {
		font-size: min(max(3rem, 6vw), 4rem); /* responsive font size */
	}
}

/* 1. Collapse main two‑column layout into two rows */
@media (max-width: 992px) {
	.main-content {
		grid-template-columns: 1fr; /* one column */
		grid-template-rows: auto auto; /* sidebar then posts */
	}
}

/* 2. Stack and center header at narrower widths */
@media (max-width: 768px) {
	.main-content {
		gap: 1rem;
		padding-top: 1rem;
		padding-bottom: 1rem;
	}
	.header {
		flex-direction: column;
		align-items: center;
		text-align: center;
		padding: 1rem 0;
	}
	.header h1 {
		width: 100%;
		margin: 0.5rem 0;
		transform: scale(1, 1.2);
		line-height: 0.9;
	}
	.header p {
		margin: 0;
		text-align: center;
	}
}

/* 3. Tweak mailing‑list and footer on small screens */
@media (max-width: 576px) {
	.header h1 {
		margin-bottom: 1rem;
	}
	.mailing-list {
		flex-direction: column;
		gap: 0.75rem;
		padding: 1.5rem 1rem;
	}
	.mailing-list input,
	.mailing-list button {
		width: 100%;
	}

	footer p {
		font-size: 0.9rem;
		line-height: 1.4;
		padding: 2rem 1rem;
	}
}
