@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=IBM+Plex+Mono:wght@400;500;700&display=swap");

:root {
	--retro-night: #12100f;
	--retro-metal: #2f2a26;
	--retro-steel: #a49a8d;
	--retro-cream: #f1e5d0;
	--retro-rust: #c44b21;
	--retro-rust-soft: #e48443;
	--retro-lime: #8ebd55;
	--retro-shadow: rgba(0, 0, 0, 0.45);
}

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

html,
body {
	min-height: 100%;
}

body {
	background:
		repeating-linear-gradient(
			-12deg,
			rgba(255, 255, 255, 0.03) 0,
			rgba(255, 255, 255, 0.03) 2px,
			transparent 2px,
			transparent 12px
		),
		radial-gradient(circle at 10% 6%, #2a201b 0, #171311 38%, #0d0b0a 100%);
	color: var(--retro-cream);
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 19px;
	line-height: 1.55;
	padding: 18px;
}

a {
	color: var(--retro-rust-soft);
	text-decoration: none;
	border-bottom: 1px dotted rgba(228, 132, 67, 0.7);
	transition: color 0.2s ease, border-color 0.2s ease;
}

a:hover {
	color: #ffd08f;
	border-color: #ffd08f;
}

.retro-shell {
	width: min(1240px, 100%);
	margin: 0 auto;
	padding: 0 4px 20px;
	animation: ride-in 0.75s ease-out;
}

@keyframes ride-in {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.ascii-wrap,
.disclaimer-wrap {
	width: min(1220px, 100%);
	margin: 0 auto 18px;
}

.ascii-banner,
.disclaimer {
	padding: 14px 16px;
	overflow-x: auto;
	border: 1px solid rgba(241, 229, 208, 0.28);
	background:
		linear-gradient(130deg, rgba(196, 75, 33, 0.16), rgba(164, 154, 141, 0.05)),
		linear-gradient(0deg, rgba(10, 10, 10, 0.86), rgba(24, 21, 18, 0.94));
	box-shadow: 0 14px 28px -14px var(--retro-shadow), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
	color: var(--retro-cream);
	text-shadow: 0 0 9px rgba(255, 180, 121, 0.2);
	border-radius: 12px;
}

.ascii-banner {
	font-size: clamp(8px, 0.9vw, 12px);
	line-height: 1.2;
}

.disclaimer {
	font-size: 1.08rem;
	line-height: 1.45;
	color: rgba(241, 229, 208, 0.82);
}

.info-panel,
.content-grid {
	width: min(1220px, 100%);
	margin: 0 auto 18px;
}

.info-panel,
.search-form,
.password-panel {
	border: 1px solid rgba(241, 229, 208, 0.22);
	border-radius: 14px;
	background:
		linear-gradient(145deg, rgba(37, 31, 27, 0.95), rgba(19, 16, 14, 0.95)),
		linear-gradient(0deg, rgba(196, 75, 33, 0.05), rgba(196, 75, 33, 0));
	box-shadow: 0 18px 32px -22px var(--retro-shadow), inset 0 0 0 1px rgba(255, 255, 255, 0.03);
	position: relative;
	overflow: hidden;
}

.info-panel::before,
.search-form::before,
.password-panel::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(transparent 0, rgba(255, 255, 255, 0.015) 100%);
	pointer-events: none;
}

.info-panel {
	padding: 22px;
}

.info-panel h3,
.search-form h2,
.password-panel h3 {
	font-family: "Bebas Neue", Impact, sans-serif;
	letter-spacing: 1.5px;
	line-height: 1.15;
	margin-bottom: 10px;
	color: #ffd7a9;
	text-transform: uppercase;
	text-shadow: 0 0 10px rgba(228, 132, 67, 0.23);
}

.info-panel h3 {
	font-size: clamp(2rem, 4.2vw, 2.6rem);
}

.search-form h2,
.password-panel h3 {
	font-size: clamp(1.6rem, 3vw, 2.15rem);
}

.lead-text {
	font-size: clamp(1.08rem, 1.55vw, 1.34rem);
	color: rgba(241, 229, 208, 0.95);
}

.content-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.9fr) minmax(280px, 1fr);
	gap: 18px;
	align-items: stretch;
}

.search-form,
.password-panel {
	display: flex;
	flex-direction: column;
	padding: 22px;
	min-height: 100%;
}

.search-form {
	gap: 8px;
}

.form-control,
.search-form input[type="text"] {
	width: 100%;
	height: 64px;
	padding: 12px 16px;
	margin-bottom: 8px;
	border-radius: 10px;
	border: 1px solid rgba(255, 215, 169, 0.25);
	background: rgba(12, 10, 9, 0.86);
	color: var(--retro-cream);
	font-size: 1.5rem;
	font-weight: 700;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.form-control::placeholder,
.search-form input[type="text"]::placeholder {
	color: rgba(241, 229, 208, 0.68);
}

.form-control:focus,
.search-form input[type="text"]:focus {
	outline: 2px solid var(--retro-rust-soft);
	outline-offset: 1px;
	border-color: rgba(228, 132, 67, 0.88);
}

.captcha-actions {
	display: flex;
	align-items: flex-end;
	gap: 16px;
	margin: 10px 0 6px;
	flex-wrap: wrap;
}

.captcha-shell {
	padding: 6px;
	border-radius: 10px;
	border: 1px solid rgba(241, 229, 208, 0.24);
	background:
		linear-gradient(145deg, rgba(37, 31, 27, 0.95), rgba(19, 16, 14, 0.95)),
		linear-gradient(0deg, rgba(196, 75, 33, 0.05), rgba(196, 75, 33, 0));
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}

.g-recaptcha {
	display: block;
	margin: 0;
	min-height: 78px;
	max-width: 100%;
	overflow: visible;
	transform: none;
	filter: sepia(0.15) contrast(1.05);
}

.search-form button {
	height: 52px;
	padding: 0 28px;
	border-radius: 10px;
	border: 2px solid rgba(255, 231, 194, 0.78);
	background:
		linear-gradient(180deg, #ffb566 0, #d45a29 55%, #8f3319 100%),
		repeating-linear-gradient(
			-45deg,
			rgba(255, 250, 236, 0.16) 0,
			rgba(255, 250, 236, 0.16) 7px,
			transparent 7px,
			transparent 14px
		);
	color: #190f0d;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 1.35rem;
	letter-spacing: 1.2px;
	font-weight: 700;
	cursor: pointer;
	text-transform: uppercase;
	text-shadow: 0 1px 0 rgba(255, 242, 219, 0.36);
	box-shadow: 0 10px 20px -10px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(255, 214, 143, 0.28), inset 0 1px 0 rgba(255, 241, 217, 0.52);
	transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.search-form button:hover {
	transform: translateY(-1px);
	box-shadow: 0 14px 24px -10px rgba(0, 0, 0, 0.72), 0 0 0 1px rgba(255, 226, 166, 0.48), inset 0 1px 0 rgba(255, 248, 233, 0.58);
}

.search-form button:active {
	transform: translateY(1px);
}

.password-panel ul {
	list-style: none;
	margin: 2px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 16px;
	row-gap: 6px;
}

.password-panel li {
	padding: 2px 0;
	color: var(--retro-cream);
	word-break: break-word;
	line-height: 1.3;
	font-size: 1.1rem;
	letter-spacing: 0.2px;
	text-shadow: 0 0 6px rgba(142, 189, 85, 0.16);
}

.password-panel li::before {
	content: "🔐 ";
	opacity: 0.9;
}

.info-panel p.lead-text[style*="color:red"],
.info-panel p.lead-text[style*="color:green"] {
	padding: 10px 0 0;
	margin-top: 12px;
	font-weight: 700;
	font-size: clamp(1.2rem, 2.05vw, 1.75rem);
	line-height: 1.32;
	text-transform: uppercase;
	letter-spacing: 0.6px;
}

.info-panel p.lead-text[style*="color:red"] {
	border-color: rgba(255, 120, 99, 0.55);
	text-shadow: 0 0 10px rgba(255, 120, 99, 0.28);
}

.info-panel p.lead-text[style*="color:green"] {
	border-color: rgba(151, 231, 117, 0.48);
	text-shadow: 0 0 10px rgba(151, 231, 117, 0.22);
}

@media (max-width: 980px) {
	.content-grid {
		grid-template-columns: 1fr;
	}

	.search-form,
	.password-panel {
		padding: 18px;
	}
}

@media (max-width: 620px) {
	body {
		padding: 10px;
		font-size: 16px;
	}

	.ascii-banner,
	.disclaimer,
	.info-panel,
	.search-form,
	.password-panel {
		padding: 14px;
		border-radius: 10px;
	}

	.captcha-actions {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.search-form input[type="text"],
	.search-form button {
		height: 44px;
	}

	.password-panel ul {
		grid-template-columns: 1fr;
	}
}