/* Folha das PÁGINAS PÚBLICAS (plantas, animais, peixes, receitas,
   novidades e a página do Colheita Feliz) — não do jogo.
 *
 * SEPARADA do style.css de propósito, e o motivo é o tamanho: aquele
 * arquivo tem 223 KB e é render-blocking, feito para desenhar um jogo
 * inteiro. Uma tabela de plantas não precisa de nada daquilo, e quem cai
 * aqui pela busca do Google está a um toque de fechar — fazer essa pessoa
 * baixar o CSS do jogo antes de ler a primeira linha é a forma mais fácil
 * de perdê-la.
 *
 * O visual é o mesmo do jogo (madeira e creme), mas a TIPOGRAFIA DO TEXTO
 * não: o jogo inteiro roda em "Fredoka", que neste projeto é um apelido
 * para o Comic Sans local (ver o @font-face no topo do style.css). Isso
 * funciona em botão e balão de fala, e é ruim para ler uma tabela de 54
 * peixes. Então título e barra ficam com a fonte do jogo, para a página
 * ser reconhecível, e o texto corrido e as tabelas vão numa fonte de
 * sistema, para serem lidos. */

@font-face {
  font-family: "Fredoka";
  src: local("Comic Sans MS");
}

:root {
  --creme: #fff3d9;
  --creme-fundo: #ffe4ad;
  --madeira: #6b4423;
  --madeira-escura: #3f2715;
  --texto: #3d2a18;
  --texto-suave: #6b5540;
  --verde: #7cb342;
  --verde-escuro: #4f7d22;
  --fonte-jogo: "Fredoka", "Comic Sans MS", "Segoe UI", sans-serif;
  --fonte-texto: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

* {
  box-sizing: border-box;
}
/* O NAVEGADOR FORÇA A MÃOZINHA DELE em todo <a> e <button>, pela folha
   de estilo interna — e ela ganha do cursor herdado do body. Sem esta
   linha o cursor do jogo valia no texto e virava mãozinha do sistema em
   cima de cada link, que é exatamente o que não se quer.
   `inherit` e não a seta direto: assim cada link recebe o cursor de onde
   ele estiver, e há um lugar só para mudar isso. Mesmo reset que o
   style.css do jogo já fazia (ver o comentário dele sobre o <label>). */
a,
button,
input,
select,
textarea,
label,
summary {
  cursor: inherit;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  /* A SETA DO JOGO NA PÁGINA INTEIRA, não só na barra — a variável vem do
     css/nav.css, que estas páginas carregam antes desta folha.
     Sem isto o cursor trocava na borda da barra: o do jogo em cima, o do
     Windows no texto. E não há mãozinha em link nenhum, aqui nem lá (ver
     a nota no nav.css).
     O texto continua selecionável normalmente; o que muda é só o desenho
     do ponteiro, que deixa de virar barra de texto em cima das tabelas. */
  cursor: var(--cursor-seta);
  font-family: var(--fonte-texto);
  font-size: 17px;
  line-height: 1.65;
  color: var(--texto);
  background: #f6ead2;
  /* Uma textura discreta em vez da ilustração da fazenda: o papel de
     parede do jogo é lindo e tem 319 KB, e atrás de uma tabela de números
     ele só atrapalharia a leitura. */
  background-image:
    radial-gradient(circle at 15% 0%, rgba(255, 244, 217, 0.9) 0%, transparent 45%),
    radial-gradient(circle at 85% 8%, rgba(255, 226, 173, 0.8) 0%, transparent 40%);
  background-attachment: fixed;
}

/* A BARRA DO TOPO vem do css/nav.css, o mesmo arquivo que a tela de
   entrar carrega — ver o cabeçalho de lá. Aqui ficam só as coisas que
   são destas páginas. */

/* ---------- miolo ---------- */
main {
  max-width: 980px;
  margin: 0 auto;
  padding: 28px clamp(16px, 4vw, 32px) 60px;
}
.trilha {
  font-size: 14px;
  color: var(--texto-suave);
  margin-bottom: 14px;
}
.trilha a {
  color: var(--madeira);
}
h1 {
  font-family: var(--fonte-jogo);
  font-size: clamp(28px, 5vw, 40px);
  line-height: 1.2;
  color: var(--madeira);
  margin: 0 0 10px;
}
h2 {
  font-family: var(--fonte-jogo);
  font-size: clamp(21px, 3.4vw, 27px);
  color: var(--madeira);
  margin: 38px 0 12px;
  scroll-margin-top: calc(var(--nav-altura) + 12px);
}
h3 {
  font-family: var(--fonte-jogo);
  font-size: 19px;
  color: var(--madeira);
  margin: 24px 0 8px;
}
p {
  margin: 0 0 14px;
}
.intro {
  font-size: 19px;
  color: var(--texto-suave);
  margin-bottom: 26px;
}
main a {
  color: var(--verde-escuro);
  font-weight: 600;
}

/* ---------- tabelas ---------- */
/* A rolagem horizontal é do QUADRO, não da página: numa tabela de sete
   colunas no celular, a alternativa é encolher a fonte até ninguém
   conseguir ler, ou quebrar a linha até cada célula virar um parágrafo. */
.quadro {
  overflow-x: auto;
  margin: 0 0 22px;
  border: 3px solid var(--madeira);
  border-radius: 16px;
  background: var(--creme);
  box-shadow: 0 5px 0 rgba(107, 68, 35, 0.18);
}
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  min-width: 560px;
}
caption {
  text-align: left;
  padding: 12px 14px 0;
  font-size: 14px;
  color: var(--texto-suave);
}
th,
td {
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid rgba(107, 68, 35, 0.16);
  white-space: nowrap;
}
th {
  position: sticky;
  top: 0;
  background: var(--creme-fundo);
  font-family: var(--fonte-jogo);
  font-size: 14px;
  color: var(--madeira);
  border-bottom: 2px solid var(--madeira);
}
tbody tr:last-child td {
  border-bottom: 0;
}
tbody tr:nth-child(even) {
  background: rgba(255, 228, 173, 0.35);
}
td.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
td.txt {
  white-space: normal;
  min-width: 260px;
  color: var(--texto-suave);
}
.etiqueta {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 700;
  border: 2px solid rgba(0, 0, 0, 0.12);
}
.r-comum { background: #eceff1; color: #455a64; }
.r-incomum { background: #dcedc8; color: #446b1e; }
.r-raro { background: #bbdefb; color: #14548f; }
.r-epico { background: #e1bee7; color: #6a1b7a; }
.r-lendario { background: #ffe0b2; color: #a1560a; }

/* ---------- imagens ----------
   A arte vem do próprio jogo, reduzida por gerar_miniaturas.py. As
   medidas aqui são a METADE do arquivo (128px), que é o que faz a
   miniatura sair nítida numa tela retina sem baixar o dobro à toa. */
.mini {
  width: 64px;
  height: 64px;
  /* contain e não cover: um peixe comprido e uma planta alta não têm a
     mesma proporção, e cortar para preencher o quadrado comeria a cabeça
     de metade do catálogo. */
  object-fit: contain;
  display: block;
}
/* Na tabela ela é menor — a linha existe para comparar números, e a arte
   é o que faz reconhecer de relance qual linha é qual. */
td.cel-mini {
  width: 60px;
  padding: 6px 10px;
}
td.cel-mini .mini {
  width: 48px;
  height: 48px;
}

/* ---------- cartões (peixes e receitas) ----------
   Ao contrário das plantas e dos bichos, aqui a pergunta não é de
   comparação ("qual rende mais por hora?") e sim de reconhecimento — a
   pessoa quer VER o peixe e saber onde acha. Uma coluna com 54 selos de
   48px não se olha; um mural, sim. */
.grade {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
  gap: 14px;
  margin: 0 0 24px;
}
.cartao {
  display: flex;
  flex-direction: column;
  padding: 14px;
  border: 3px solid var(--madeira);
  border-radius: 16px;
  background: var(--creme);
  box-shadow: 0 5px 0 rgba(107, 68, 35, 0.18);
}
.cartao-arte {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 96px;
  margin-bottom: 8px;
  border-radius: 12px;
  /* Um fundo próprio atrás da arte: boa parte dos peixes é clara e some
     contra o creme do cartão. */
  background: radial-gradient(circle at 50% 45%, #ffffff 0%, rgba(255, 228, 173, 0.65) 75%);
}
.cartao-arte .mini {
  width: 84px;
  height: 84px;
}
.cartao h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 4px;
  font-size: 17px;
}
.cartao .onde {
  margin: 0 0 6px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--verde-escuro);
}
.cartao .sobre {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--texto-suave);
}
.ingredientes {
  margin: 0;
  padding-left: 20px;
  font-size: 14.5px;
  color: var(--texto-suave);
}

/* ---------- galerias (nota de atualização, amostra) ---------- */
.galeria {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 12px 0 4px;
}
.galeria figure {
  margin: 0;
  text-align: center;
}
.galeria figcaption {
  font-size: 13px;
  font-weight: 600;
  color: var(--texto-suave);
}
.galeria .mini {
  width: 76px;
  height: 76px;
}
/* As evoluções são o ponto da seção, não um enfeite ao lado do texto:
   a graça de evoluir um bicho é ver como ele fica, e a 76px da galeria
   comum não dá para distinguir a armadura do búfalo +10 da pelagem dele
   em +7. Cada passo ganha o próprio quadro, como os cartões de peixe. */
.galeria-evolucao {
  gap: 10px;
}
.galeria-evolucao figure {
  padding: 8px 8px 4px;
  border: 3px solid var(--madeira);
  border-radius: 14px;
  background: radial-gradient(circle at 50% 45%, #ffffff 0%, rgba(255, 228, 173, 0.65) 75%);
  box-shadow: 0 4px 0 rgba(107, 68, 35, 0.18);
}
.galeria-evolucao .mini {
  width: 104px;
  height: 104px;
}
.galeria-evolucao figcaption {
  font-family: var(--fonte-jogo);
  font-size: 15px;
  color: var(--madeira);
}

/* As miniaturas dos mapas são ilustrações largas, não recortes de item:
   entram com a proporção delas, e aí `cover` é o certo — a arte preenche
   o quadro inteiro em vez de sobrar borda dos dois lados. */
.galeria-mapas img {
  width: min(240px, 40vw);
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border: 3px solid var(--madeira);
  border-radius: 12px;
  display: block;
}

/* ---------- notas de atualização ---------- */
.nota {
  border: 3px solid var(--madeira);
  border-radius: 16px;
  background: var(--creme);
  box-shadow: 0 5px 0 rgba(107, 68, 35, 0.18);
  padding: 18px 20px;
  margin: 0 0 18px;
}
.nota time {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  color: var(--texto-suave);
  margin-bottom: 4px;
}
.nota h2 {
  margin: 0 0 8px;
  font-size: 21px;
}
.nota p:last-child {
  margin-bottom: 0;
}

/* ---------- chamada para jogar ---------- */
.chamada {
  margin: 40px 0 0;
  padding: 26px clamp(18px, 4vw, 32px);
  text-align: center;
  border: 4px solid var(--madeira);
  border-radius: 20px;
  background: linear-gradient(180deg, var(--creme) 0%, var(--creme-fundo) 100%);
  box-shadow: 0 8px 0 rgba(107, 68, 35, 0.2);
}
.chamada h2 {
  margin-top: 0;
}
.botao {
  display: inline-block;
  margin-top: 6px;
  padding: 14px 30px;
  border: 3px solid var(--verde-escuro);
  border-radius: 16px;
  background: linear-gradient(180deg, #9ccc65 0%, #6ea832 100%);
  box-shadow: 0 5px 0 var(--verde-escuro);
  color: #fff;
  font-family: var(--fonte-jogo);
  font-size: 19px;
  font-weight: 800;
  text-decoration: none;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);
}
.botao:hover {
  transform: translateY(-2px);
  box-shadow: 0 7px 0 var(--verde-escuro);
}
.botao:active {
  transform: translateY(3px);
  box-shadow: 0 2px 0 var(--verde-escuro);
}

/* ---------- rodapé ---------- */
.rodape {
  border-top: 4px solid var(--madeira-escura);
  background: linear-gradient(180deg, #684225 0%, #4a2d18 100%);
  color: #ffe9c4;
  padding: 26px clamp(16px, 4vw, 32px) 34px;
}
.rodape-miolo {
  max-width: 980px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.rodape a {
  color: #ffe9c4;
  font-weight: 600;
}
.rodape small {
  display: block;
  width: 100%;
  margin-top: 12px;
  opacity: 0.75;
  font-size: 13px;
}

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