/* ==========================================================================
   Coro de Ferro — folha de estilo do site
   Identidade tirada da interface do jogo (client/ui/ui.gd): fundo azul-negro, linhas de aço,
   laranja de destaque, ciano de foco, painéis com cantos cortados a 45° e as três famílias
   tipográficas do jogo (Orbitron, Rajdhani, Share Tech Mono).
   Sem dependências externas; compatível com Content-Security-Policy: default-src 'self'.
   ========================================================================== */

/* ---------------------------------------------------------------- fontes */

@font-face {
	font-family: "Orbitron";
	src: url("../fonts/Orbitron.ttf") format("truetype");
	font-weight: 400 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Rajdhani";
	src: url("../fonts/Rajdhani-Regular.latin.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Rajdhani";
	src: url("../fonts/Rajdhani-Medium.latin.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Rajdhani";
	src: url("../fonts/Rajdhani-SemiBold.latin.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Rajdhani";
	src: url("../fonts/Rajdhani-Bold.latin.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Share Tech Mono";
	src: url("../fonts/ShareTechMono-Regular.ttf") format("truetype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* ---------------------------------------------------------------- variáveis */

:root {
	/* cores de client/ui/ui.gd */
	--fundo: #07090d;
	--fundo-2: #0a0d12;
	--painel: #0f131a;          /* C_PANEL */
	--painel-claro: #1c212b;    /* C_PANEL_LIGHT */
	--botao: #1a1f29;
	--botao-hover: #29303d;
	--linha: #2b3742;           /* C_LINE sobre o fundo */
	--linha-forte: #4a6272;
	--destaque: #ff9429;        /* C_ACCENT */
	--destaque-claro: #ffd999;
	--destaque-fundo: #3b2713;  /* C_ACCENT a 22% sobre o painel */
	--ciano: #4dd9ff;           /* C_CYAN */
	--texto: #e6edf2;           /* C_TEXT */
	--apagado: #a3b1bb;         /* C_DIM, um pouco mais claro para texto corrido */
	--vermelho: #ff5a47;
	--verde: #59eb73;
	--ouro: #ffd159;

	/* raridades (shared/defs/items.gd) e árvores (shared/defs/skills.gd) */
	--r-comum: #b8bdc2;
	--r-incomum: #4de666;
	--r-raro: #4d9eff;
	--r-epico: #bd61ff;
	--r-lendario: #ffa324;
	--a-assalto: #ff6b38;
	--a-baluarte: #59b8ff;
	--a-tecnologo: #73ff9e;

	--f-titulo: "Orbitron", "Rajdhani", "Segoe UI", system-ui, sans-serif;
	--f-texto: "Rajdhani", "Segoe UI", system-ui, -apple-system, sans-serif;
	--f-mono: "Share Tech Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

	--largura: 1220px;
	--margem: clamp(1.25rem, 4vw, 3rem);
	--topo-altura: 4.25rem;
	--corte: 10px;
	--espaco-secao: clamp(4.5rem, 9vw, 8rem);
}

/* ---------------------------------------------------------------- base */

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

html {
	color-scheme: dark;
	background: var(--fundo);
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--topo-altura) + 1.25rem);
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	margin: 0;
	min-height: 100vh;
	min-height: 100dvh;
	background: var(--fundo);
	color: var(--texto);
	font-family: var(--f-texto);
	font-size: 1.1875rem;
	font-weight: 500;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

img,
svg,
video,
iframe {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

h1,
h2,
h3,
h4 {
	margin: 0;
	font-family: var(--f-titulo);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: 0.015em;
	text-transform: uppercase;
	text-wrap: balance;
}

p {
	margin: 0 0 1em;
	text-wrap: pretty;
}

p:last-child {
	margin-bottom: 0;
}

ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

figure {
	margin: 0;
}

a {
	color: var(--destaque-claro);
	text-decoration-color: rgba(255, 148, 41, 0.55);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: color 0.15s ease, text-decoration-color 0.15s ease;
}

a:hover {
	color: #fff;
	text-decoration-color: var(--destaque);
}

strong,
b {
	font-weight: 700;
	color: #fff;
}

button {
	font: inherit;
	color: inherit;
}

code,
kbd,
samp,
.mono {
	font-family: var(--f-mono);
	font-size: 0.875em;
	letter-spacing: 0.01em;
}

kbd {
	display: inline-block;
	min-width: 1.9em;
	padding: 0.12em 0.5em 0.08em;
	border: 1px solid var(--linha-forte);
	border-bottom-width: 2px;
	border-radius: 3px;
	background: var(--painel-claro);
	color: var(--texto);
	line-height: 1.35;
	text-align: center;
	white-space: nowrap;
}

::selection {
	background: var(--destaque);
	color: #0b0d10;
}

:focus {
	outline: none;
}

:focus-visible {
	outline: 2px solid var(--ciano);
	outline-offset: 3px;
	border-radius: 2px;
}

[hidden] {
	display: none !important;
}

.nome-proprio {
	text-transform: none;
}

.so-leitor {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.pular {
	position: absolute;
	left: 1rem;
	top: -5rem;
	z-index: 200;
	padding: 0.6rem 1rem;
	background: var(--destaque);
	color: #0b0d10;
	font-weight: 700;
	text-decoration: none;
	transition: top 0.15s ease;
}

.pular:focus {
	top: 0.75rem;
	color: #0b0d10;
}

.container {
	width: 100%;
	max-width: calc(var(--largura) + 2 * var(--margem));
	margin-inline: auto;
	padding-inline: var(--margem);
}

/* ---------------------------------------------------------------- cantos cortados
   O jogo desenha painéis e botões com StyleBoxFlat de cantos a 45° (corner_detail = 1).
   Aqui: o elemento é recortado por clip-path e pintado com a cor da borda; o ::before, 1 px
   para dentro, pinta o miolo. O contorno de foco troca a cor e a espessura dessa borda
   (um outline comum seria cortado pelo clip-path). */

.painel,
.btn,
.moldura,
.selo,
.chanfro {
	clip-path: polygon(var(--corte) 0, calc(100% - var(--corte)) 0, 100% var(--corte), 100% calc(100% - var(--corte)), calc(100% - var(--corte)) 100%, var(--corte) 100%, 0 calc(100% - var(--corte)), 0 var(--corte));
}

.painel,
.btn,
.moldura,
.selo {
	position: relative;
	isolation: isolate;
	background: var(--borda, var(--linha));
}

.painel::before,
.btn::before,
.moldura::before,
.selo::before {
	--corte-i: calc(var(--corte) - 0.45px);
	content: "";
	position: absolute;
	inset: var(--borda-l, 1px);
	z-index: -1;
	background: var(--miolo, var(--painel));
	clip-path: polygon(var(--corte-i) 0, calc(100% - var(--corte-i)) 0, 100% var(--corte-i), 100% calc(100% - var(--corte-i)), calc(100% - var(--corte-i)) 100%, var(--corte-i) 100%, 0 calc(100% - var(--corte-i)), 0 var(--corte-i));
	transition: background-color 0.15s ease;
}

.painel {
	padding: clamp(1.1rem, 2.2vw, 1.75rem);
}

.moldura {
	--corte: 14px;
	padding: 1px;
}

.moldura > img,
.moldura > picture > img,
.moldura > a > img {
	--corte-i: 13.5px;
	display: block;
	width: 100%;
	clip-path: polygon(var(--corte-i) 0, calc(100% - var(--corte-i)) 0, 100% var(--corte-i), 100% calc(100% - var(--corte-i)), calc(100% - var(--corte-i)) 100%, var(--corte-i) 100%, 0 calc(100% - var(--corte-i)), 0 var(--corte-i));
}

/* ---------------------------------------------------------------- botões */

.btn {
	--corte: 7px;
	--miolo: var(--botao);
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 0.1rem;
	min-height: 2.9rem;
	padding: 0.55rem 1.25rem;
	border: 0;
	color: var(--texto);
	font-family: var(--f-texto);
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	text-align: left;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, transform 0.1s ease;
	-webkit-tap-highlight-color: transparent;
}

.btn:hover {
	--borda: var(--destaque);
	--miolo: var(--botao-hover);
	color: #fff;
}

.btn:active {
	--borda: var(--destaque);
	--miolo: var(--destaque);
	color: #0b0d10;
	transform: translateY(1px);
}

.btn:focus-visible {
	--borda: var(--ciano);
	--borda-l: 2px;
	outline: none;
}

.btn--destaque {
	--borda: var(--destaque);
	--miolo: var(--destaque-fundo);
	color: var(--destaque-claro);
}

.btn--destaque:hover {
	--miolo: var(--destaque);
	color: #0b0d10;
}

.btn--destaque:hover .btn-meta,
.btn:active .btn-meta {
	color: #2a1a06;
}

.btn--grande {
	min-height: 3.75rem;
	padding: 0.7rem 1.5rem 0.65rem;
	font-size: 1.1875rem;
}

.btn--centro {
	align-items: center;
	text-align: center;
}

.btn-meta {
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.06em;
	text-transform: none;
	transition: color 0.15s ease;
}

.btn--destaque .btn-meta {
	color: #e0b37a;
}

.btn[aria-disabled="true"],
.btn:disabled {
	--borda: #232a33;
	--miolo: #11151b;
	color: #7d8a94;
	cursor: not-allowed;
	transform: none;
}

.btn[aria-disabled="true"] .btn-meta,
.btn:disabled .btn-meta {
	color: #7d8a94;
}

.btn-icone {
	flex: none;
	width: 1.1em;
	height: 1.1em;
	fill: currentColor;
}

.btn--linha {
	flex-direction: row;
	align-items: center;
	gap: 0.6rem;
}

/* ---------------------------------------------------------------- rótulos e títulos */

.rotulo {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 1rem;
	color: var(--destaque);
	font-family: var(--f-mono);
	font-size: 0.8125rem;
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.rotulo::before {
	content: "";
	flex: none;
	width: 2.25rem;
	height: 1px;
	background: currentColor;
}

.rotulo--ciano {
	color: var(--ciano);
}

.titulo {
	font-size: clamp(1.7rem, 3.5vw, 2.85rem);
}

.titulo--menor {
	font-size: clamp(1.35rem, 2.4vw, 1.9rem);
}

.lead {
	max-width: 44rem;
	margin-top: 1.25rem;
	color: var(--apagado);
	font-size: clamp(1.1875rem, 1.6vw, 1.375rem);
	line-height: 1.5;
}

.lead strong {
	color: var(--texto);
}

.nota {
	color: var(--apagado);
	font-size: 1rem;
}

.etiqueta {
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* régua de frequências: o mostrador de um rádio, usado como divisória */
.regua {
	height: 13px;
	background:
		linear-gradient(90deg, var(--linha-forte) 0 1px, transparent 1px) 0 100% / 60px 13px repeat-x,
		linear-gradient(90deg, var(--linha) 0 1px, transparent 1px) 0 100% / 12px 6px repeat-x;
	opacity: 0.9;
}

/* ---------------------------------------------------------------- topo */

.topo {
	position: sticky;
	top: 0;
	z-index: 100;
	height: var(--topo-altura);
	background: rgba(7, 9, 13, 0.9);
	border-bottom: 1px solid var(--linha);
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	.topo {
		background: rgba(7, 9, 13, 0.72);
		-webkit-backdrop-filter: blur(14px) saturate(1.3);
		backdrop-filter: blur(14px) saturate(1.3);
	}
}

.topo-linha {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	height: 100%;
}

.marca {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	flex: none;
	color: var(--texto);
	text-decoration: none;
}

.marca:hover {
	color: #fff;
}

.marca-icone {
	width: 2.1rem;
	height: 2.1rem;
	flex: none;
}

.marca-nome {
	font-family: var(--f-titulo);
	font-size: 0.98rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
}

.marca-nome span {
	color: var(--destaque);
}

.nav {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex: 1;
	min-width: 0;
}

.nav-lista {
	display: flex;
	align-items: center;
	gap: clamp(0.9rem, 1.6vw, 1.6rem);
	margin-inline: auto;
}

.nav-lista a {
	position: relative;
	display: block;
	padding: 0.5rem 0;
	color: var(--apagado);
	font-size: 0.98rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.nav-lista a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.2rem;
	height: 2px;
	background: var(--destaque);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.2s ease;
}

.nav-lista a:hover,
.nav-lista a[aria-current="page"],
.nav-lista a[aria-current="true"] {
	color: #fff;
}

.nav-lista a:hover::after,
.nav-lista a[aria-current="page"]::after,
.nav-lista a[aria-current="true"]::after {
	transform: scaleX(1);
}

.topo-acoes {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex: none;
}

.topo-acoes .btn {
	min-height: 2.5rem;
	padding: 0.4rem 1rem;
	font-size: 0.98rem;
}

.nav-botao {
	display: none;
	align-items: center;
	gap: 0.6rem;
	margin-left: auto;
	padding: 0.5rem 0.25rem 0.5rem 0.75rem;
	border: 0;
	background: none;
	color: var(--texto);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
}

.nav-botao-barras {
	position: relative;
	width: 1.5rem;
	height: 2px;
	background: currentColor;
	transition: background-color 0.15s ease;
}

.nav-botao-barras::before,
.nav-botao-barras::after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: var(--texto);
	transition: transform 0.2s ease;
}

.nav-botao-barras::before {
	top: -7px;
}

.nav-botao-barras::after {
	top: 7px;
}

.nav-botao[aria-expanded="true"] .nav-botao-barras {
	background: transparent;
}

.nav-botao[aria-expanded="true"] .nav-botao-barras::before {
	transform: translateY(7px) rotate(45deg);
}

.nav-botao[aria-expanded="true"] .nav-botao-barras::after {
	transform: translateY(-7px) rotate(-45deg);
}

/* marcador de sintonia: acompanha a rolagem da página */
.topo-sintonia {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 2px;
	pointer-events: none;
	overflow: hidden;
}

.topo-sintonia::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--destaque), #ffd27a);
	transform: scaleX(0);
	transform-origin: left;
}

@supports (animation-timeline: scroll()) {
	@media (prefers-reduced-motion: no-preference) {
		.topo-sintonia::before {
			animation: sintonia linear both;
			animation-timeline: scroll(root block);
		}
	}
}

@keyframes sintonia {
	to {
		transform: scaleX(1);
	}
}

/* abaixo de 1240 px o menu completo não cabe ao lado da marca e dos dois botões: vira menu recolhido */
@media (max-width: 1240px) {
	.nav-botao {
		display: inline-flex;
	}

	.nav {
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: 1.25rem;
		max-height: calc(100vh - var(--topo-altura));
		max-height: calc(100dvh - var(--topo-altura));
		padding: 1rem var(--margem) 1.75rem;
		overflow-y: auto;
		background: rgba(7, 9, 13, 0.98);
		border-bottom: 1px solid var(--linha);
		box-shadow: 0 2rem 3rem rgba(0, 0, 0, 0.6);
	}

	/* com JavaScript o menu abre e fecha; sem JavaScript fica visível como lista */
	.js .nav {
		display: none;
	}

	.js .nav.aberta {
		display: flex;
	}

	.nav-lista {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		margin: 0;
	}

	.nav-lista a {
		padding: 0.85rem 0;
		border-bottom: 1px solid var(--linha);
		font-size: 1.1rem;
	}

	.nav-lista a::after {
		display: none;
	}

	.topo-acoes {
		flex-direction: column;
		align-items: stretch;
	}

	.topo-acoes .btn {
		align-items: center;
		min-height: 3rem;
		font-size: 1.05rem;
	}

	html:not(.js) .topo {
		position: static;
		height: auto;
	}

	html:not(.js) .topo-linha {
		flex-wrap: wrap;
		padding-block: 0.75rem;
	}

	html:not(.js) .nav {
		position: static;
		max-height: none;
		padding: 0;
		background: none;
		border: 0;
		box-shadow: none;
		flex-basis: 100%;
	}

	html:not(.js) .nav-botao {
		display: none;
	}
}

@media (max-width: 359px) {
	.marca {
		gap: 0.5rem;
	}

	.marca-icone {
		width: 1.8rem;
		height: 1.8rem;
	}

	.marca-nome {
		font-size: 0.86rem;
		letter-spacing: 0.07em;
	}

	.nav-botao {
		gap: 0;
		padding-left: 0.5rem;
	}

	/* só as barras: o texto "Menu" continua valendo para leitores de tela */
	.nav-botao > span:first-child {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}

/* ---------------------------------------------------------------- herói */

.heroi {
	position: relative;
	display: flex;
	align-items: center;
	min-height: calc(100vh - var(--topo-altura));
	min-height: min(calc(100svh - var(--topo-altura)), 62rem);
	padding-block: clamp(3rem, 8vh, 6rem) clamp(4.5rem, 10vh, 7rem);
	overflow: hidden;
	background: #05070a;
}

.heroi-fundo,
.heroi-quadro {
	position: absolute;
	inset: 0;
}

.heroi-quadro {
	opacity: 0;
	transition: opacity 2.6s ease-in-out;
}

.heroi-quadro.ativo {
	opacity: 1;
}

.heroi-quadro img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 60% 42%;
}

/* escurecimento lateral: a mesma fórmula do menu do jogo (client/ui/login.gd) */
.heroi-sombra {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(7, 9, 13, 0) 62%, rgba(7, 9, 13, 0.72) 88%, var(--fundo) 100%),
		linear-gradient(90deg, rgba(3, 4, 6, 0.9) 0%, rgba(3, 4, 6, 0.82) 18%, rgba(3, 4, 6, 0.5) 40%, rgba(3, 4, 6, 0.08) 62%, rgba(3, 4, 6, 0) 70%),
		linear-gradient(180deg, rgba(3, 4, 6, 0.5) 0%, rgba(3, 4, 6, 0) 22%);
}

.heroi-conteudo {
	position: relative;
	z-index: 1;
	width: 100%;
}

.heroi-titulo,
.heroi-lema,
.heroi-texto,
.heroi-versao {
	max-width: 39rem;
}

.heroi-titulo {
	display: flex;
	flex-direction: column;
	margin-left: -0.04em;
	font-size: clamp(4.1rem, 13.2vw, 9.4rem);
	font-weight: 800;
	line-height: 0.86;
	letter-spacing: 0.01em;
	color: var(--texto);
	text-shadow: 0 0.04em 0.5em rgba(0, 0, 0, 0.55);
}

.heroi-titulo .de-ferro {
	margin-top: 0.14em;
	margin-left: 0.04em;
	color: var(--destaque);
	font-size: 0.5em;
	line-height: 1;
	letter-spacing: 0.02em;
}

.heroi-lema {
	margin: clamp(1.1rem, 2.4vh, 1.6rem) 0 0;
	color: #c4ced6;
	font-size: clamp(1.4rem, 2.5vw, 1.9rem);
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.01em;
}

.heroi-texto {
	max-width: 34rem;
	margin: 0.85rem 0 0;
	color: var(--apagado);
	font-size: clamp(1.125rem, 1.5vw, 1.25rem);
}

.heroi-acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: clamp(1.6rem, 3.6vh, 2.4rem);
}

.heroi-acoes .btn {
	flex: 0 1 auto;
}

.heroi-acoes .btn--destaque {
	--miolo: rgba(72, 44, 16, 0.94);
}

.heroi-acoes .btn--destaque:hover {
	--miolo: var(--destaque);
}

.heroi-acoes .btn:not(.btn--destaque) {
	--miolo: rgba(20, 24, 32, 0.92);
}

.heroi-acoes .btn:not(.btn--destaque):hover {
	--miolo: var(--botao-hover);
}

.seu-sistema {
	margin-left: 0.5em;
	padding: 0.05em 0.45em 0;
	background: var(--ciano);
	color: #06222c;
	font-family: var(--f-mono);
	font-size: 0.625rem;
	font-weight: 400;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	vertical-align: 0.2em;
}

.heroi-versao {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1.1rem;
	margin: 1.4rem 0 0;
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.heroi-versao span + span::before {
	content: "/";
	margin-right: 1.1rem;
	color: var(--linha-forte);
}

@media (max-width: 520px) {
	.heroi-versao span[data-data] {
		flex-basis: 100%;
	}

	.heroi-versao span[data-data]::before {
		content: none;
	}
}

.aviso-celular {
	display: none;
	max-width: 30rem;
	margin: 1.25rem 0 0;
	padding: 0.7rem 0.9rem;
	border-left: 2px solid var(--ciano);
	background: rgba(9, 22, 28, 0.86);
	color: #cfeaf4;
	font-size: 1rem;
	line-height: 1.4;
}

@media (hover: none) and (pointer: coarse) {
	.aviso-celular {
		display: block;
	}
}

.heroi-legenda {
	position: absolute;
	right: var(--margem);
	bottom: clamp(1rem, 3vh, 1.75rem);
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	color: #c9d4dc;
	font-family: var(--f-mono);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.9);
}

.heroi-legenda-hora {
	color: var(--destaque-claro);
}

.heroi-pausa {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.9rem;
	height: 1.9rem;
	padding: 0;
	border: 1px solid rgba(201, 212, 220, 0.5);
	border-radius: 50%;
	background: rgba(5, 7, 10, 0.55);
	color: #fff;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.heroi-pausa:hover {
	border-color: var(--destaque);
	background: rgba(5, 7, 10, 0.85);
}

.heroi-pausa svg {
	width: 0.7rem;
	height: 0.7rem;
	fill: currentColor;
}

.heroi-pausa .ic-tocar,
.heroi-pausa[aria-pressed="true"] .ic-pausar {
	display: none;
}

.heroi-pausa[aria-pressed="true"] .ic-tocar {
	display: block;
}

.heroi-horas {
	display: flex;
	gap: 4px;
}

.heroi-horas i {
	width: 14px;
	height: 3px;
	background: rgba(201, 212, 220, 0.35);
	transition: background-color 0.6s ease;
}

.heroi-horas i.ativo {
	background: var(--destaque);
}

@media (max-width: 760px) {
	.heroi {
		align-items: flex-end;
		min-height: min(calc(100svh - var(--topo-altura)), 54rem);
		padding-block: 9rem 4.5rem;
	}

	.heroi-quadro img {
		object-position: 42% 30%;
	}

	.heroi-titulo {
		font-size: clamp(4.4rem, 22vw, 8rem);
	}

	.heroi-sombra {
		background:
			linear-gradient(180deg, rgba(3, 4, 6, 0.3) 0%, rgba(3, 4, 6, 0.1) 22%, rgba(5, 7, 10, 0.72) 48%, rgba(7, 9, 13, 0.94) 72%, var(--fundo) 100%);
	}

	.heroi-acoes {
		flex-direction: column;
	}

	.heroi-acoes .btn {
		width: 100%;
	}

	.heroi-legenda {
		left: var(--margem);
		right: auto;
		bottom: 1.1rem;
	}
}

/* ---------------------------------------------------------------- números */

.numeros {
	position: relative;
	z-index: 2;
	border-block: 1px solid var(--linha);
	background: var(--fundo-2);
}

.numeros-lista {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
}

.numeros-lista li {
	padding: clamp(1.25rem, 2.6vw, 2rem) clamp(0.75rem, 2vw, 1.75rem);
	border-left: 1px solid var(--linha);
}

.numeros-lista li:first-child {
	border-left: 0;
	padding-left: 0;
}

.numeros-valor {
	display: block;
	color: #fff;
	font-family: var(--f-titulo);
	font-size: clamp(1.6rem, 3.3vw, 2.6rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.numeros-valor small {
	color: var(--destaque);
	font-size: 0.5em;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.numeros-texto {
	display: block;
	margin-top: 0.5rem;
	color: var(--apagado);
	font-size: 1rem;
	line-height: 1.25;
}

@media (max-width: 900px) {
	.numeros-lista {
		grid-template-columns: repeat(6, 1fr);
	}

	.numeros-lista li {
		grid-column: span 2;
		border-top: 1px solid var(--linha);
	}

	.numeros-lista li:nth-child(-n + 3) {
		border-top: 0;
	}

	.numeros-lista li:nth-child(4),
	.numeros-lista li:nth-child(5) {
		grid-column: span 3;
	}

	.numeros-lista li:nth-child(4) {
		border-left: 0;
		padding-left: 0;
	}
}

@media (max-width: 520px) {
	.numeros-lista {
		grid-template-columns: 1fr 1fr;
	}

	.numeros-lista li,
	.numeros-lista li:nth-child(4),
	.numeros-lista li:nth-child(5) {
		grid-column: auto;
		padding-inline: 1rem 0.5rem;
		border-top: 1px solid var(--linha);
		border-left: 1px solid var(--linha);
	}

	.numeros-lista li:nth-child(-n + 2) {
		border-top: 0;
	}

	.numeros-lista li:nth-child(odd) {
		border-left: 0;
		padding-left: 0;
	}

	.numeros-lista li:last-child {
		grid-column: 1 / -1;
	}
}

/* ---------------------------------------------------------------- seções */

.secao {
	position: relative;
	padding-block: var(--espaco-secao);
}

.secao--faixa {
	background: var(--fundo-2);
	border-block: 1px solid var(--linha);
}

.secao--colada {
	padding-top: 0;
}

.secao-cab {
	max-width: 52rem;
	margin-bottom: clamp(2.25rem, 5vw, 3.75rem);
}

.secao-cab--centro {
	margin-inline: auto;
	text-align: center;
}

.secao-cab--centro .rotulo {
	justify-content: center;
}

.secao-cab--centro .rotulo::after {
	content: "";
	flex: none;
	width: 2.25rem;
	height: 1px;
	background: currentColor;
}

.secao-cab--centro .lead {
	margin-inline: auto;
}

/* entrada suave ao rolar — só onde o navegador anima pela posição de rolagem, sem JavaScript */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.revela {
			animation: revela linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 32%;
		}
	}
}

@keyframes revela {
	from {
		opacity: 0;
		transform: translateY(26px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

/* ---------------------------------------------------------------- recursos (texto + mídia) */

.recurso {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}

.recurso + .recurso {
	margin-top: var(--espaco-secao);
}

.recurso--invertido .recurso-midia {
	order: -1;
}

.recurso--topo {
	align-items: start;
}

.recurso-texto > p {
	color: var(--apagado);
}

.recurso-texto > p strong {
	color: var(--texto);
}

.recurso-texto .titulo {
	margin-bottom: 1.25rem;
}

.recurso-midia figcaption,
.legenda {
	margin-top: 0.7rem;
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.lista-fatos {
	display: grid;
	gap: 0.6rem;
	margin-top: 1.5rem;
}

.lista-fatos li {
	position: relative;
	padding-left: 1.5rem;
	color: var(--apagado);
}

.lista-fatos li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 0.7rem;
	height: 2px;
	background: var(--destaque);
}

.lista-fatos strong {
	color: var(--texto);
}

@media (max-width: 900px) {
	.recurso {
		grid-template-columns: minmax(0, 1fr);
	}

	.recurso--invertido .recurso-midia {
		order: 0;
	}
}

/* ---------------------------------------------------------------- selos (raridades, modos de zona, modificadores) */

.selos {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 1.25rem;
}

.selo {
	--corte: 5px;
	--miolo: var(--fundo-2);
	--borda: var(--cor, var(--linha-forte));
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.3rem 0.8rem 0.25rem;
	color: var(--cor, var(--texto));
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
	white-space: nowrap;
}

.selo--comum { --cor: var(--r-comum); }
.selo--incomum { --cor: var(--r-incomum); }
.selo--raro { --cor: var(--r-raro); }
.selo--epico { --cor: var(--r-epico); }
.selo--lendario { --cor: var(--r-lendario); }
.selo--segura { --cor: var(--ciano); }
.selo--pve { --cor: var(--verde); }
.selo--contestada { --cor: var(--destaque); }
.selo--livre { --cor: var(--vermelho); }

/* ---------------------------------------------------------------- mapa do mundo */

.mapa {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
}

.mapa-quadro {
	position: relative;
}

.mapa-quadro .moldura {
	--borda: var(--linha-forte);
}

.mapa-quadro img {
	aspect-ratio: 1;
	object-fit: cover;
}

.mapa-pontos {
	position: absolute;
	inset: 1px;
}

.ponto {
	position: absolute;
	transform: translate(-50%, -50%);
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.28rem 0.6rem 0.22rem 0.45rem;
	border: 1px solid rgba(230, 237, 242, 0.5);
	background: rgba(7, 9, 13, 0.82);
	color: #fff;
	font-family: var(--f-texto);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	line-height: 1.15;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.ponto::before {
	content: "";
	flex: none;
	width: 0.55rem;
	height: 0.55rem;
	background: var(--cor, var(--texto));
	transform: rotate(45deg);
}

.ponto:hover {
	border-color: #fff;
	background: rgba(7, 9, 13, 0.95);
}

.ponto[aria-pressed="true"] {
	border-color: var(--destaque);
	background: var(--destaque);
	color: #0b0d10;
}

.ponto[aria-pressed="true"]::before {
	background: #0b0d10;
}

.ponto--hub { left: 50%; top: 83%; --cor: var(--ciano); }
.ponto--plains { left: 43%; top: 73.5%; --cor: var(--verde); }
.ponto--canyon { left: 21%; top: 66%; --cor: var(--verde); }
.ponto--city { left: 78.5%; top: 62%; --cor: var(--destaque); }
.ponto--marsh { left: 22.5%; top: 31%; --cor: var(--verde); }
.ponto--debris { left: 77%; top: 28%; --cor: var(--destaque); }
.ponto--dead { left: 50%; top: 50%; --cor: var(--vermelho); }
.ponto--forge { left: 50%; top: 12%; --cor: var(--destaque); }

.mapa-legenda {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.25rem;
	margin-top: 0.9rem;
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.mapa-legenda li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.mapa-legenda li::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	background: var(--cor);
	transform: rotate(45deg);
}

.zonas {
	display: grid;
	gap: 0.75rem;
}

.zona {
	--corte: 9px;
}

.zona-cab {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.4rem 0.9rem;
	margin-bottom: 0.6rem;
}

.zona-nome {
	font-size: clamp(1.15rem, 1.9vw, 1.45rem);
}

.zona-nivel {
	color: var(--destaque-claro);
	font-family: var(--f-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.zona p {
	color: var(--apagado);
	font-size: 1.0625rem;
}

.zona-dados {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.3rem 1rem;
	margin: 0.9rem 0 0;
	font-size: 1rem;
}

.zona-dados dt {
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	line-height: 2;
	text-transform: uppercase;
}

.zona-dados dd {
	margin: 0;
	color: var(--texto);
}

.zona .selos {
	margin-top: 0;
}

.zona {
	padding: 1px;
}

.zona-foto {
	--corte-i: 8.5px;
	width: 100%;
	aspect-ratio: 720 / 300;
	object-fit: cover;
	clip-path: polygon(var(--corte-i) 0, calc(100% - var(--corte-i)) 0, 100% var(--corte-i), 100% 100%, 0 100%, 0 var(--corte-i));
}

.zona-corpo {
	padding: clamp(1.1rem, 2.2vw, 1.6rem);
}

/* com JavaScript só a zona escolhida aparece; sem JavaScript a lista inteira fica visível */
.mapa-dica {
	display: block;
	margin-bottom: 0.75rem;
}

html:not(.js) .mapa-dica {
	display: none;
}

@media (max-width: 900px) {
	.mapa {
		grid-template-columns: minmax(0, 1fr);
	}

}

@media (max-width: 560px) {
	.ponto {
		padding: 0.22rem 0.4rem 0.16rem 0.32rem;
		gap: 0.3rem;
		font-size: 0.66rem;
		letter-spacing: 0.03em;
	}

	.ponto::before {
		width: 0.42rem;
		height: 0.42rem;
	}
}

/* ---------------------------------------------------------------- máquinas */

.maquinas {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
}

.maquina {
	--corte: 12px;
	padding: 1px;
	display: flex;
	flex-direction: column;
}

.maquina img {
	--corte-i: 11.5px;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	clip-path: polygon(var(--corte-i) 0, calc(100% - var(--corte-i)) 0, 100% var(--corte-i), 100% 100%, 0 100%, 0 var(--corte-i));
}

.maquina-texto {
	flex: 1;
	padding: 0.9rem 1.1rem 1.1rem;
}

.maquina-nome {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	font-size: 1.05rem;
	letter-spacing: 0.04em;
}

.maquina-tipo {
	color: var(--destaque);
	font-family: var(--f-mono);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: 0.12em;
	white-space: nowrap;
}

.maquina p {
	margin-top: 0.45rem;
	color: var(--apagado);
	font-size: 1rem;
	line-height: 1.4;
}

.maquina--chefe {
	--borda: var(--vermelho);
	grid-column: span 2;
	flex-direction: row;
}

.maquina--chefe img {
	width: 52%;
	aspect-ratio: auto;
	clip-path: polygon(var(--corte-i) 0, 100% 0, 100% 100%, var(--corte-i) 100%, 0 calc(100% - var(--corte-i)), 0 var(--corte-i));
}

.maquina--chefe .maquina-texto {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 1.25rem 1.4rem;
}

.maquina--chefe .maquina-nome {
	flex-direction: column-reverse;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: clamp(1.25rem, 2vw, 1.6rem);
}

.maquina--chefe .maquina-tipo {
	color: var(--vermelho);
}

.maquinas-nota {
	margin-top: 1.75rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 1rem 2.5rem;
	align-items: center;
}

.maquinas-nota .selos {
	margin-top: 0;
}

@media (max-width: 1000px) {
	.maquinas {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.maquina--chefe {
		grid-column: span 3;
	}

	.maquinas-nota {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 680px) {
	.maquinas {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.6rem;
	}

	.maquina--chefe {
		grid-column: span 2;
		flex-direction: column;
	}

	.maquina--chefe img {
		width: 100%;
		aspect-ratio: 4 / 3;
		clip-path: polygon(var(--corte-i) 0, calc(100% - var(--corte-i)) 0, 100% var(--corte-i), 100% 100%, 0 100%, 0 var(--corte-i));
	}

	.maquina-texto {
		padding: 0.7rem 0.8rem 0.9rem;
	}

	.maquina-nome {
		flex-direction: column;
		gap: 0.15rem;
		font-size: 0.95rem;
	}

	.maquina p {
		font-size: 0.95rem;
	}
}

/* ---------------------------------------------------------------- arsenal */

.armas {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
}

.figura-larga {
	max-width: 68.75rem;
	margin: clamp(2.25rem, 5vw, 3.75rem) auto 0;
}

.moldura-rolagem {
	--corte-i: 13.5px;
	overflow-x: auto;
	scrollbar-width: thin;
	scrollbar-color: var(--linha-forte) transparent;
	clip-path: polygon(var(--corte-i) 0, calc(100% - var(--corte-i)) 0, 100% var(--corte-i), 100% calc(100% - var(--corte-i)), calc(100% - var(--corte-i)) 100%, var(--corte-i) 100%, 0 calc(100% - var(--corte-i)), 0 var(--corte-i));
}

.moldura-rolagem img {
	width: 100%;
}

.figura-dica {
	display: none;
}

@media (max-width: 700px) {
	.moldura-rolagem img {
		width: 44rem;
		max-width: none;
	}

	.figura-dica {
		display: inline;
	}
}

.figura-larga figcaption {
	margin-top: 0.7rem;
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-align: center;
	text-transform: uppercase;
}

.arma {
	--corte: 7px;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 0.85rem 0.9rem 0.75rem;
}

.arma svg {
	width: 100%;
	max-width: 7.5rem;
	height: auto;
	fill: var(--cor, var(--r-comum));
}

.arma-nome {
	color: var(--texto);
	font-size: 0.98rem;
	font-weight: 600;
	line-height: 1.2;
}

.arma-tipo {
	display: block;
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.arma:nth-child(5n + 1) { --cor: var(--r-comum); }
.arma:nth-child(5n + 2) { --cor: var(--r-incomum); }
.arma:nth-child(5n + 3) { --cor: var(--r-raro); }
.arma:nth-child(5n + 4) { --cor: var(--r-epico); }
.arma:nth-child(5n + 5) { --cor: var(--r-lendario); }

@media (max-width: 420px) {
	.armas {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ---------------------------------------------------------------- árvores de habilidades e campanha */

.arvores {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.9rem;
}

.arvore {
	--borda: var(--cor);
	padding: 1.4rem 1.4rem 1.5rem;
}

.arvore--assalto { --cor: var(--a-assalto); }
.arvore--baluarte { --cor: var(--a-baluarte); }
.arvore--tecnologo { --cor: var(--a-tecnologo); }

.arvore-nome {
	color: var(--cor);
	font-size: 1.35rem;
	letter-spacing: 0.06em;
}

.arvore > p {
	margin: 0.6rem 0 1.1rem;
	color: var(--apagado);
	font-size: 1.0625rem;
}

.arvore dl {
	display: grid;
	gap: 0.85rem;
	margin: 0;
	padding-top: 1.1rem;
	border-top: 1px solid var(--linha);
}

.arvore dt {
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.arvore dd {
	margin: 0.1rem 0 0;
	color: var(--apagado);
	font-size: 1rem;
	line-height: 1.4;
}

.arvore dd strong {
	display: block;
	color: var(--texto);
	font-size: 1.125rem;
}

.campanha {
	counter-reset: missao;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	border-top: 1px solid var(--linha);
}

.campanha li {
	counter-increment: missao;
	display: flex;
	align-items: baseline;
	gap: 0.8rem;
	padding: 0.55rem 0;
	border-bottom: 1px solid var(--linha);
	color: var(--texto);
	font-weight: 600;
}

.campanha li::before {
	content: "0" counter(missao);
	color: var(--destaque);
	font-family: var(--f-mono);
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.1em;
}

.campanha small {
	margin-left: auto;
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	white-space: nowrap;
}

@media (max-width: 900px) {
	.arvores {
		grid-template-columns: minmax(0, 1fr);
	}

}

/* ---------------------------------------------------------------- galeria */

.galeria {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 0.6rem;
}

.galeria li {
	grid-column: span 4;
}

.galeria li:nth-child(5n + 1),
.galeria li:nth-child(5n + 2) {
	grid-column: span 6;
}

.galeria-item {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 1920 / 962;
	background: var(--painel);
	color: #fff;
	text-decoration: none;
}

.galeria-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease, filter 0.3s ease;
}

.galeria-item:hover img,
.galeria-item:focus-visible img {
	transform: scale(1.035);
	filter: brightness(1.08);
}

/* cantoneiras de mira, como na interface do jogo */
.galeria-item::before,
.galeria-item::after {
	content: "";
	position: absolute;
	z-index: 1;
	width: 1.1rem;
	height: 1.1rem;
	border: 2px solid var(--destaque);
	opacity: 0;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.galeria-item::before {
	left: 0.6rem;
	top: 0.6rem;
	border-right: 0;
	border-bottom: 0;
	transform: translate(6px, 6px);
}

.galeria-item::after {
	right: 0.6rem;
	bottom: 0.6rem;
	border-left: 0;
	border-top: 0;
	transform: translate(-6px, -6px);
}

.galeria-item:hover::before,
.galeria-item:hover::after,
.galeria-item:focus-visible::before,
.galeria-item:focus-visible::after {
	opacity: 1;
	transform: none;
}

.galeria-item:focus-visible {
	outline-offset: 2px;
}

.galeria-legenda {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 2.2rem 1rem 0.7rem;
	background: linear-gradient(180deg, rgba(5, 7, 10, 0), rgba(5, 7, 10, 0.88));
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.02em;
}

@media (max-width: 900px) {
	.galeria li,
	.galeria li:nth-child(5n + 1),
	.galeria li:nth-child(5n + 2) {
		grid-column: span 6;
	}
}

@media (max-width: 520px) {
	.galeria li,
	.galeria li:nth-child(5n + 1),
	.galeria li:nth-child(5n + 2) {
		grid-column: 1 / -1;
	}
}

/* visor de imagens em tela cheia */
.visor {
	width: 100vw;
	max-width: 100vw;
	height: 100vh;
	height: 100dvh;
	max-height: 100dvh;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(4, 5, 8, 0.96);
	color: var(--texto);
}

.visor::backdrop {
	background: rgba(4, 5, 8, 0.9);
}

.visor-caixa {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	height: 100%;
}

.visor-topo,
.visor-pe {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.75rem var(--margem);
}

.visor-contador {
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.14em;
}

.visor-palco {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
	padding-inline: clamp(0.5rem, 5vw, 4.5rem);
}

.visor-palco img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

.visor-legenda {
	flex: 1;
	margin: 0;
	font-size: 1.125rem;
	font-weight: 600;
	text-align: center;
}

.visor-botao {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.9rem;
	height: 2.9rem;
	flex: none;
	padding: 0;
	border: 1px solid var(--linha-forte);
	background: rgba(15, 19, 26, 0.9);
	color: #fff;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.visor-botao:hover {
	border-color: var(--destaque);
	background: var(--botao-hover);
}

.visor-botao svg {
	width: 1.1rem;
	height: 1.1rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	stroke-linecap: square;
}

.visor-seta {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1;
}

.visor-seta--ant {
	left: clamp(0.4rem, 1.2vw, 1.25rem);
}

.visor-seta--prox {
	right: clamp(0.4rem, 1.2vw, 1.25rem);
}

/* ---------------------------------------------------------------- passos (jogar com amigos) */

.passos {
	counter-reset: passo;
	display: grid;
	gap: 1.1rem;
}

.passos > li {
	counter-increment: passo;
	position: relative;
	padding-left: 3.6rem;
	color: var(--apagado);
}

.passos > li::before {
	content: counter(passo);
	position: absolute;
	left: 0;
	top: -0.1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	border: 1px solid var(--destaque);
	color: var(--destaque);
	font-family: var(--f-titulo);
	font-size: 1rem;
	font-weight: 700;
}

.passos h3 {
	margin-bottom: 0.25rem;
	color: var(--texto);
	font-family: var(--f-texto);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.3;
	text-transform: none;
}

.servidor {
	--borda: var(--linha-forte);
	display: grid;
	gap: 1.1rem;
}

.servidor-campo {
	display: grid;
	gap: 0.3rem;
}

.servidor-linha {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem 0.9rem;
}

.servidor-endereco {
	color: #fff;
	font-family: var(--f-mono);
	font-size: clamp(1.05rem, 2.2vw, 1.5rem);
	letter-spacing: 0.02em;
	overflow-wrap: anywhere;
}

.servidor-endereco--menor {
	font-size: 1rem;
	color: var(--texto);
}

.copiar {
	--corte: 5px;
	min-height: 2.1rem;
	padding: 0.25rem 0.8rem 0.2rem;
	font-size: 0.85rem;
}

.copiar.feito {
	--borda: var(--verde);
	color: var(--verde);
}

.caixa-nota {
	padding: 0.9rem 1.1rem;
	border-left: 2px solid var(--ciano);
	background: rgba(77, 217, 255, 0.06);
	color: var(--apagado);
	font-size: 1.0625rem;
}

.caixa-nota strong {
	color: var(--texto);
}

.caixa-nota--alerta {
	border-left-color: var(--destaque);
	background: rgba(255, 148, 41, 0.07);
}

/* ---------------------------------------------------------------- requisitos */

.requisitos {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.9rem;
}

.requisito h3 {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	margin-bottom: 1rem;
	padding-bottom: 0.9rem;
	border-bottom: 1px solid var(--linha);
	font-size: 1.15rem;
	letter-spacing: 0.06em;
}

.requisito h3 svg {
	width: 1.5rem;
	height: 1.5rem;
	flex: none;
	fill: none;
	stroke: var(--destaque);
	stroke-width: 1.6;
}

.requisito dl {
	display: grid;
	gap: 0.85rem;
	margin: 0;
}

.requisito dt {
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.requisito dd {
	margin: 0.1rem 0 0;
	color: var(--texto);
	font-size: 1.0625rem;
	line-height: 1.4;
}

.tabela-rolagem {
	overflow-x: auto;
	margin-top: clamp(2rem, 4vw, 3rem);
}

.tabela-rolagem + .nota {
	margin-top: 1rem;
}

.tabela {
	width: 100%;
	border-collapse: collapse;
	font-size: 1.0625rem;
}

.tabela caption {
	padding-bottom: 0.9rem;
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-align: left;
	text-transform: uppercase;
}

.tabela th,
.tabela td {
	padding: 0.6rem 1rem 0.55rem 0;
	border-bottom: 1px solid var(--linha);
	text-align: left;
	vertical-align: top;
}

.tabela thead th {
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.tabela tbody th {
	color: var(--texto);
	font-weight: 700;
	white-space: nowrap;
}

.tabela td {
	color: var(--apagado);
}

.tabela .num {
	color: var(--texto);
	font-family: var(--f-mono);
	font-size: 0.95rem;
	white-space: nowrap;
}

.tabela tr.padrao th {
	color: var(--destaque);
}

@media (max-width: 900px) {
	.requisitos {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------------------------------------------------------------- novidades */

.novidades {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.5fr);
	gap: clamp(1.5rem, 5vw, 4rem);
	align-items: start;
}

.versao-grande {
	margin: 0;
	color: #fff;
	font-family: var(--f-titulo);
	font-size: clamp(3rem, 8vw, 5.5rem);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: 0.01em;
}

.versao-grande small {
	color: var(--destaque);
	font-size: 0.42em;
	vertical-align: 0.12em;
}

.versao-dados {
	display: grid;
	gap: 0.2rem;
	margin-top: 1rem;
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.notas {
	display: grid;
	gap: 0;
}

.notas li {
	position: relative;
	padding: 0.85rem 0 0.85rem 2rem;
	border-bottom: 1px solid var(--linha);
	color: var(--texto);
}

.notas li:first-child {
	border-top: 1px solid var(--linha);
}

.notas li::before {
	content: "+";
	position: absolute;
	left: 0.25rem;
	top: 0.8rem;
	color: var(--destaque);
	font-family: var(--f-mono);
}

@media (max-width: 760px) {
	.novidades {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------------------------------------------------------------- dúvidas */

.duvidas {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 3rem;
	align-items: start;
}

.duvidas-coluna {
	border-top: 1px solid var(--linha);
}

.duvida {
	border-bottom: 1px solid var(--linha);
}

.duvida summary {
	position: relative;
	display: block;
	padding: 1.05rem 2.75rem 1rem 0;
	color: var(--texto);
	font-size: 1.1875rem;
	font-weight: 700;
	line-height: 1.3;
	cursor: pointer;
	list-style: none;
	transition: color 0.15s ease;
}

.duvida summary::-webkit-details-marker {
	display: none;
}

.duvida summary:hover {
	color: var(--destaque-claro);
}

.duvida summary::before,
.duvida summary::after {
	content: "";
	position: absolute;
	right: 0.5rem;
	top: 50%;
	width: 0.9rem;
	height: 2px;
	margin-top: -1px;
	background: var(--destaque);
	transition: transform 0.2s ease;
}

.duvida summary::after {
	transform: rotate(90deg);
}

.duvida[open] summary::after {
	transform: rotate(0deg);
}

.duvida-resposta {
	padding: 0 2rem 1.25rem 0;
	color: var(--apagado);
	font-size: 1.125rem;
}

.duvida-resposta strong {
	color: var(--texto);
}

@media (max-width: 900px) {
	.duvidas {
		grid-template-columns: minmax(0, 1fr);
	}

	.duvidas-coluna + .duvidas-coluna {
		border-top: 0;
	}
}

/* ---------------------------------------------------------------- chamada final */

.chamada {
	position: relative;
	overflow: hidden;
	padding-block: clamp(4.5rem, 11vw, 9rem);
	background: #05070a;
	border-top: 1px solid var(--linha);
	text-align: center;
}

.chamada-fundo {
	position: absolute;
	inset: 0;
}

.chamada-fundo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 40%;
	opacity: 0.85;
}

.chamada-fundo::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 50% 50%, rgba(5, 7, 10, 0.5), rgba(5, 7, 10, 0.82) 70%),
		linear-gradient(180deg, var(--fundo-2) 0%, rgba(7, 9, 13, 0) 30%, rgba(5, 7, 10, 0) 66%, #05070a 100%);
}

.chamada .container {
	position: relative;
}

.chamada .titulo {
	font-size: clamp(2rem, 5.2vw, 4rem);
}

.chamada .titulo em {
	color: var(--destaque);
	font-style: normal;
}

.chamada .lead {
	margin-inline: auto;
	color: #c4ced6;
}

.chamada-acoes {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin-top: 2rem;
}

/* ---------------------------------------------------------------- rodapé */

.rodape {
	border-top: 1px solid var(--linha);
	background: #05070a;
	color: var(--apagado);
	font-size: 1.0625rem;
}

.rodape-grade {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 0.7fr));
	gap: 2.5rem 2rem;
	padding-block: clamp(2.5rem, 6vw, 4rem);
}

.rodape-lema {
	margin: 1rem 0 0;
	max-width: 22rem;
}

.rodape h2 {
	margin-bottom: 0.9rem;
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.16em;
}

.rodape-links {
	display: grid;
	gap: 0.45rem;
}

.rodape-links a {
	color: var(--texto);
	text-decoration: none;
}

.rodape-links a:hover {
	color: var(--destaque-claro);
	text-decoration: underline;
}

.rodape-creditos {
	padding-block: 1.5rem 2rem;
	border-top: 1px solid var(--linha);
	font-size: 0.98rem;
	line-height: 1.55;
}

.rodape-creditos p {
	max-width: 62rem;
	margin-bottom: 0.5rem;
}

@media (max-width: 860px) {
	.rodape-grade {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rodape-marca {
		grid-column: 1 / -1;
	}
}

/* ---------------------------------------------------------------- cabeçalho das páginas internas */

.pagina-cab {
	position: relative;
	padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(1.75rem, 4vw, 2.75rem);
	border-bottom: 1px solid var(--linha);
	background:
		linear-gradient(180deg, rgba(255, 148, 41, 0.07), rgba(255, 148, 41, 0) 70%),
		var(--fundo-2);
}

.pagina-cab .titulo {
	font-size: clamp(2rem, 5vw, 3.5rem);
}

.pagina-cab .regua {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
}

/* ---------------------------------------------------------------- jogar no navegador */

.palco-secao {
	padding-block: clamp(1.5rem, 3vw, 2.5rem) var(--espaco-secao);
}

.palco {
	--corte: 16px;
	--borda: var(--linha-forte);
	padding: 1px;
}

.palco-quadro {
	--corte-i: 15.5px;
	position: relative;
	aspect-ratio: 16 / 9;
	max-height: calc(100vh - 11rem);
	max-height: calc(100dvh - 11rem);
	min-height: 20rem;
	width: 100%;
	overflow: hidden;
	background: #030405;
	clip-path: polygon(var(--corte-i) 0, calc(100% - var(--corte-i)) 0, 100% var(--corte-i), 100% 100%, 0 100%, 0 var(--corte-i));
}

.palco-cartaz,
.palco-quadro iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.palco-cartaz {
	object-fit: cover;
	opacity: 0.55;
}

.palco-estado {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.9rem;
	padding: 1.5rem;
	background: radial-gradient(ellipse at center, rgba(5, 7, 10, 0.55), rgba(5, 7, 10, 0.9));
	text-align: center;
}

.palco-estado h2 {
	font-size: clamp(1.25rem, 3vw, 2.1rem);
}

.palco-estado p {
	max-width: 34rem;
	margin: 0;
	color: #c4ced6;
	font-size: clamp(1rem, 1.6vw, 1.1875rem);
}

.palco-estado .btn {
	margin-top: 0.5rem;
}

.palco-estado .etiqueta {
	color: var(--ciano);
}

.palco-estado--alerta .etiqueta {
	color: var(--destaque);
}

.palco-acoes {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
}

.pulso {
	width: 2.75rem;
	height: 2.75rem;
	border: 2px solid var(--linha-forte);
	border-top-color: var(--destaque);
	border-radius: 50%;
}

@media (prefers-reduced-motion: no-preference) {
	.pulso {
		animation: girar 0.9s linear infinite;
	}
}

@keyframes girar {
	to {
		transform: rotate(360deg);
	}
}

.palco-barra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem 1.25rem;
	padding: 0.7rem 1.1rem 0.75rem;
}

.palco-barra .btn {
	min-height: 2.4rem;
	padding: 0.35rem 0.95rem;
	font-size: 0.95rem;
}

.palco-dica {
	flex: 1 1 16rem;
	margin: 0;
	color: var(--apagado);
	font-size: 1rem;
	line-height: 1.35;
}

/* em tela cheia o quadro ocupa o monitor inteiro */
.palco-quadro:fullscreen {
	max-height: none;
	aspect-ratio: auto;
	clip-path: none;
}

.palco-quadro:-webkit-full-screen {
	max-height: none;
	aspect-ratio: auto;
	clip-path: none;
}

.controles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 3rem;
}

.controles-grupo h3 {
	margin: 0 0 0.25rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid var(--linha-forte);
	color: var(--destaque);
	font-family: var(--f-mono);
	font-size: 0.8125rem;
	font-weight: 400;
	letter-spacing: 0.16em;
}

.controles-grupo + .controles-grupo {
	margin-top: 0;
}

.controles dl {
	margin: 0 0 2rem;
}

.controles .linha {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--linha);
}

.controles dt {
	color: var(--texto);
	font-size: 1.0625rem;
}

.controles dd {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.3rem;
	margin: 0;
	color: var(--apagado);
	font-size: 0.95rem;
}

.dicas {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.9rem;
}

.dica h3 {
	margin-bottom: 0.6rem;
	font-size: 1.05rem;
	letter-spacing: 0.05em;
}

.dica p {
	color: var(--apagado);
	font-size: 1.0625rem;
}

@media (max-width: 900px) {
	.controles,
	.dicas {
		grid-template-columns: minmax(0, 1fr);
	}

	.palco-quadro {
		aspect-ratio: 4 / 3;
	}
}

@media (max-width: 560px) {
	.palco-quadro {
		aspect-ratio: 3 / 4;
		max-height: 34rem;
	}
}

/* ---------------------------------------------------------------- baixar */

.downloads {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.9rem;
}

.download {
	--corte: 14px;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	padding: clamp(1.25rem, 2.6vw, 2rem);
	scroll-margin-top: calc(var(--topo-altura) + 1.25rem);
}

.download.seu {
	--borda: var(--ciano);
}

.download-cab {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.download-cab h2 {
	font-size: clamp(1.5rem, 3vw, 2.1rem);
}

.download-cab .etiqueta {
	display: block;
	margin-top: 0.4rem;
}

.download-cab .seu-sistema {
	display: none;
	flex: none;
	margin: 0.3rem 0 0;
	font-size: 0.6875rem;
}

.download.seu .download-cab .seu-sistema {
	display: block;
}

.download .btn {
	align-self: flex-start;
}

.download-dados {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.5rem 1.25rem;
	margin: 0;
	padding-top: 1.1rem;
	border-top: 1px solid var(--linha);
	font-size: 1.0625rem;
}

.download-dados dt {
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	line-height: 2.3;
	text-transform: uppercase;
}

.download-dados dd {
	margin: 0;
	color: var(--texto);
	min-width: 0;
}

.hash {
	display: block;
	color: var(--destaque-claro);
	font-family: var(--f-mono);
	font-size: 0.8125rem;
	line-height: 1.5;
	overflow-wrap: anywhere;
	word-break: break-all;
}

.hash-linha {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
}

.abertura {
	margin-top: 0.25rem;
}

.abertura h3 {
	margin-bottom: 0.9rem;
	color: var(--texto);
	font-family: var(--f-texto);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: none;
}

.abertura ol {
	counter-reset: item;
	display: grid;
	gap: 0.65rem;
}

.abertura ol > li {
	counter-increment: item;
	position: relative;
	padding-left: 2.1rem;
	color: var(--apagado);
	font-size: 1.0625rem;
}

.abertura ol > li::before {
	content: counter(item);
	position: absolute;
	left: 0;
	top: 0.05rem;
	width: 1.45rem;
	height: 1.45rem;
	border: 1px solid var(--linha-forte);
	color: var(--destaque-claro);
	font-family: var(--f-mono);
	font-size: 0.75rem;
	line-height: 1.4rem;
	text-align: center;
}

.abertura ol > li strong {
	color: var(--texto);
}

.abertura .caixa-nota {
	margin-top: 1rem;
	font-size: 1rem;
}

.comando {
	display: block;
	margin-top: 0.5rem;
	padding: 0.6rem 0.8rem;
	border: 1px solid var(--linha);
	background: #05070a;
	color: var(--destaque-claro);
	font-family: var(--f-mono);
	font-size: 0.8125rem;
	line-height: 1.5;
	overflow-x: auto;
	white-space: pre;
}

.trio {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.9rem;
}

.trio h3 {
	margin-bottom: 0.6rem;
	font-size: 1.05rem;
	letter-spacing: 0.05em;
}

.trio p {
	color: var(--apagado);
	font-size: 1.0625rem;
}

@media (max-width: 900px) {
	.downloads,
	.trio {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------------------------------------------------------------- licenças e textos longos */

.prosa {
	max-width: 50rem;
}

.prosa h2 {
	margin: 2.75rem 0 1rem;
	font-size: clamp(1.25rem, 2.4vw, 1.6rem);
}

.prosa h2:first-child {
	margin-top: 0;
}

.prosa p,
.prosa li {
	color: var(--apagado);
}

.prosa ul {
	display: grid;
	gap: 0.5rem;
	margin: 0 0 1em;
	padding-left: 1.4rem;
	list-style: square;
}

.prosa ul li::marker {
	color: var(--destaque);
}

.licenca {
	margin: 1rem 0 0;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--linha);
	background: #05070a;
	color: var(--apagado);
	font-family: var(--f-mono);
	font-size: 0.8125rem;
	line-height: 1.6;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

/* ---------------------------------------------------------------- página não encontrada */

.perdido {
	position: relative;
	display: flex;
	align-items: center;
	min-height: calc(100vh - var(--topo-altura));
	min-height: calc(100svh - var(--topo-altura));
	padding-block: 4rem;
	overflow: hidden;
	background: #05070a;
}

.perdido-fundo {
	position: absolute;
	inset: 0;
}

.perdido-fundo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 30%;
	opacity: 0.55;
}

.perdido-fundo::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		repeating-linear-gradient(180deg, rgba(0, 0, 0, 0) 0 3px, rgba(0, 0, 0, 0.22) 3px 4px),
		linear-gradient(90deg, rgba(5, 7, 10, 0.88) 0%, rgba(5, 7, 10, 0.55) 45%, rgba(5, 7, 10, 0.25) 100%),
		linear-gradient(180deg, rgba(5, 7, 10, 0) 60%, #05070a 100%);
}

.perdido .container {
	position: relative;
}

.perdido-codigo {
	margin: 0;
	color: var(--destaque);
	font-family: var(--f-titulo);
	font-size: clamp(5rem, 22vw, 14rem);
	font-weight: 800;
	line-height: 0.85;
	letter-spacing: 0.02em;
}

.perdido .titulo {
	margin-top: 1rem;
}

.perdido .lead {
	margin-bottom: 2rem;
	color: #c4ced6;
}

/* ---------------------------------------------------------------- preferências de movimento e impressão */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

@media (forced-colors: active) {
	.painel,
	.btn,
	.moldura,
	.selo {
		clip-path: none;
		border: 1px solid CanvasText;
	}

	.painel::before,
	.btn::before,
	.moldura::before,
	.selo::before {
		display: none;
	}
}

@media print {
	.topo,
	.heroi-legenda,
	.nav-botao,
	.chamada {
		display: none;
	}

	body {
		background: #fff;
		color: #000;
	}
}

/* ---------------------------------------------------------------- ajustes de espaçamento */

.secao-cab--compacto {
	margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

.secao-cab--compacto .titulo {
	font-size: clamp(1.9rem, 4.4vw, 3.2rem);
}

.recurso--espaco {
	margin-top: clamp(2.5rem, 6vw, 4.5rem);
}

.caixa-nota--espaco {
	margin-top: 0.9rem;
}

.aviso-celular--bloco {
	max-width: none;
	margin: 0 0 1.25rem;
}

.comando-rotulo {
	margin-top: 1.1rem;
}

.downloads + .caixa-nota,
noscript .caixa-nota {
	margin-bottom: 1.25rem;
}

.servidores {
	display: grid;
	gap: 0.9rem;
}

.servidor-item {
	display: grid;
	gap: 0.8rem;
	justify-items: start;
}

/* o aviso "precisa de JavaScript" do palco só aparece para quem está sem JavaScript */
.js [data-estado="sem-js"] {
	display: none;
}
