/*
 * Camada "chrome": header, sidebar, footer, nav — a moldura caótica do
 * site. Fundo com padrão gerado em CSS (sem imagem externa), paleta neon,
 * bevels estilo janela de sistema (Windows 95/98), fonte pixel.
 *
 * O que NÃO está aqui: colapso responsivo em menu "Iniciar" (mobile-menu.css),
 * estilo específico do contador/badges/marquee (gimmicks.css).
 */

/* ---------- Fundo "starfield" tileável, gerado em CSS ---------- */

body {
	background-color: var(--mariombn-color-bg);
	background-image:
		radial-gradient(circle at 10% 20%, var(--mariombn-color-accent-cyan) 0 2px, transparent 2px),
		radial-gradient(circle at 60% 75%, var(--mariombn-color-accent-magenta) 0 2px, transparent 2px),
		radial-gradient(circle at 85% 15%, var(--mariombn-color-accent-lime) 0 2px, transparent 2px),
		radial-gradient(circle at 35% 55%, var(--mariombn-color-accent-cyan) 0 1px, transparent 1px);
	background-size: 70px 70px, 90px 90px, 110px 110px, 45px 45px;
	color: var(--mariombn-color-chrome-text);
}

/* ---------- Grid geral (desktop) ---------- */

.site-wrapper {
	display: grid;
	grid-template-columns: var(--mariombn-sidebar-width) 1fr;
	grid-template-areas:
		'header header'
		'sidebar content'
		'footer footer';
	gap: 0;
	min-height: 100vh;
}

#masthead {
	grid-area: header;
}

#site-sidebar {
	grid-area: sidebar;
}

#content {
	grid-area: content;
	min-width: 0; /* evita overflow de blocos de código largos empurrando o grid */
}

#colophon {
	grid-area: footer;
}

/* ---------- Bevel utilitário (janela "elevada" estilo Win95/98) ---------- */

.retro-widget,
.site-branding,
.main-navigation ul,
.badge-best-viewed {
	background: var(--mariombn-color-panel);
	border: var(--mariombn-border-width) solid;
	border-color: var(--mariombn-color-panel-raised) #1a0530 #1a0530 var(--mariombn-color-panel-raised);
	padding: 1rem;
}

/* ---------- Header ---------- */

.site-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	padding: 1rem 1.25rem;
	border-bottom: var(--mariombn-border-width) solid var(--mariombn-color-accent-magenta);
	/* Sem isso, o texto não-quebrável do marquee (filho) força este flex/grid
	   item a ficar tão largo quanto o texto inteiro, mesmo com overflow:hidden
	   no marquee — min-width:auto é o padrão em itens flex/grid. */
	min-width: 0;
	overflow: hidden;
}

.site-branding {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 0.75rem 1.25rem;
}

.site-branding__wordmark {
	margin: 0;
	font-family: var(--mariombn-font-pixel);
	font-size: 1.1rem;
	line-height: 1.4;
}

.site-branding__wordmark a {
	color: var(--mariombn-color-accent-lime);
	text-decoration: none;
}

.site-branding__wordmark a:hover,
.site-branding__wordmark a:focus-visible {
	color: var(--mariombn-color-accent-cyan);
}

.site-branding__tagline {
	margin: 0;
	font-family: var(--mariombn-font-pixel);
	font-size: 0.65rem;
	color: var(--mariombn-color-accent-cyan);
}

.custom-logo-link img {
	max-height: 72px;
}

/* ---------- Navegação principal ---------- */

.main-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	list-style: none;
}

/*
 * Botão "Iniciar": só existe visualmente em mobile. O toggle real
 * (off-canvas + JS) é implementado em mobile-menu.css/mobile-menu.js;
 * aqui garantimos que ele fica oculto por padrão no desktop.
 */
.start-button {
	display: none;
}

.main-navigation a {
	display: inline-block;
	font-family: var(--mariombn-font-pixel);
	font-size: 0.7rem;
	text-decoration: none;
	color: var(--mariombn-color-chrome-text);
	background: var(--mariombn-color-panel-raised);
	border: 2px solid;
	border-color: #8a5ac0 #1a0530 #1a0530 #8a5ac0;
	padding: 0.5rem 0.75rem;
}

.main-navigation a:hover,
.main-navigation a:focus-visible {
	color: var(--mariombn-color-bg);
	background: var(--mariombn-color-accent-cyan);
}

.main-navigation a:active {
	border-color: #1a0530 #8a5ac0 #8a5ac0 #1a0530;
}

/* ---------- Sidebar ---------- */

.site-sidebar {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	padding: 1.25rem;
}

.widget-title {
	margin: 0 0 0.75rem;
	font-family: var(--mariombn-font-pixel);
	font-size: 0.75rem;
	color: var(--mariombn-color-accent-lime);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.retro-widget ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.retro-widget li + li {
	margin-top: 0.4rem;
}

.retro-widget a {
	color: var(--mariombn-color-accent-cyan);
	text-decoration: underline;
}

.retro-widget a:hover,
.retro-widget a:focus-visible {
	color: var(--mariombn-color-accent-magenta);
}

/* ---------- Footer ---------- */

.site-footer {
	padding: 1.5rem 1.25rem;
	border-top: var(--mariombn-border-width) solid var(--mariombn-color-accent-cyan);
	display: flex;
	flex-direction: column;
	gap: 1rem;
	align-items: center;
	text-align: center;
}

.site-footer__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
}

.site-footer__colophon {
	margin: 0;
	font-family: var(--mariombn-font-pixel);
	font-size: 0.65rem;
	color: var(--mariombn-color-chrome-text);
}

.site-footer__colophon a {
	color: var(--mariombn-color-accent-lime);
}

/* ---------- 404 (chrome puro, sem sidebar de conteúdo real) ---------- */

.site-main--404 {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	min-height: 60vh;
	padding: 2rem 1.25rem;
	text-align: center;
	font-family: var(--mariombn-font-pixel);
}

.site-main--404 .page-title {
	font-size: 1rem;
	color: var(--mariombn-color-accent-magenta);
}

.site-main--404 p {
	font-size: 0.75rem;
	max-width: 32ch;
}

.under-construction-badge {
	image-rendering: pixelated;
}
