/* =====================================================
   5ª SÉRIE B · colagem escolar brasileira
   papel pautado -> cortiça -> quadro-negro -> prova
   ===================================================== */

:root {
  --papel: oklch(0.97 0.015 95);
  --papel-sombra: oklch(0.90 0.02 95);
  --tinta: oklch(0.25 0.02 260);
  --bic-azul: oklch(0.45 0.16 262);
  --bic-claro: oklch(0.80 0.05 262);
  --caneta-vermelha: oklch(0.55 0.21 28);
  --lapis-amarelo: oklch(0.82 0.16 85);
  --quadro-verde: oklch(0.32 0.06 165);
  --quadro-verde-fundo: oklch(0.28 0.05 165);
  --giz: oklch(0.95 0.01 95);
  --giz-fraco: oklch(0.95 0.01 95 / 0.65);
  --cortica: oklch(0.72 0.08 70);
  --cortica-escura: oklch(0.62 0.09 65);
  --madeira: oklch(0.45 0.08 60);

  --fonte-display: "Titan One", system-ui, sans-serif;
  --fonte-corpo: "Shantell Sans", system-ui, sans-serif;
  --fonte-mao: "Gochi Hand", cursive;
  --fonte-caneta: "Caveat", cursive;

  --linha-caderno: 2.1rem;
  --ease-saida: cubic-bezier(0.165, 0.84, 0.44, 1);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--fonte-corpo);
  color: var(--tinta);
  background: var(--papel);
  overflow-x: hidden;
  line-height: 1.55;
}

img, svg { display: block; }

.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* ---------- folha de caderno (superfície base) ---------- */

.caderno {
  background:
    linear-gradient(to right,
      transparent calc(clamp(1.2rem, 5vw, 4.5rem) - 2px),
      oklch(0.62 0.15 25 / 0.45) calc(clamp(1.2rem, 5vw, 4.5rem) - 2px),
      oklch(0.62 0.15 25 / 0.45) clamp(1.2rem, 5vw, 4.5rem),
      transparent clamp(1.2rem, 5vw, 4.5rem)),
    repeating-linear-gradient(to bottom,
      var(--papel),
      var(--papel) calc(var(--linha-caderno) - 1px),
      oklch(0.70 0.06 240 / 0.35) calc(var(--linha-caderno) - 1px),
      oklch(0.70 0.06 240 / 0.35) var(--linha-caderno));
}

/* ---------- títulos de seção ---------- */

.titulo-secao {
  font-family: var(--fonte-display);
  font-weight: 400;
  font-size: clamp(1.8rem, 5.5vw, 3.2rem);
  margin: 0 0 0.3rem;
  letter-spacing: 0.01em;
  color: var(--bic-azul);
  transform: rotate(-1deg);
}

.sub-secao {
  font-family: var(--fonte-mao);
  font-size: clamp(1.15rem, 2.6vw, 1.5rem);
  margin: 0 0 clamp(1.8rem, 4vw, 3rem);
  color: oklch(0.42 0.04 260);
  transform: rotate(-0.5deg);
}

/* rotações de bagunça controlada */
.gira-1 { rotate: -2deg; }
.gira-2 { rotate: 1.5deg; }
.gira-3 { rotate: -1deg; }
.gira-4 { rotate: 2.5deg; }

/* =====================================================
   FAIXA DA DIRETORIA (marquee)
   ===================================================== */

.faixa-aviso {
  background: var(--caneta-vermelha);
  color: oklch(0.97 0.01 95);
  overflow: hidden;
  font-family: var(--fonte-mao);
  font-size: 1.05rem;
  border-bottom: 3px dashed oklch(0.97 0.01 95 / 0.5);
}

.faixa-trilho {
  display: flex;
  width: max-content;
  animation: faixa-rola 28s linear infinite;
}

.faixa-conteudo {
  white-space: nowrap;
  padding: 0.45rem 0;
}

@keyframes faixa-rola {
  to { transform: translateX(-50%); }
}

/* =====================================================
   HERO
   ===================================================== */

.hero {
  position: relative;
  padding: clamp(3.5rem, 9vw, 7rem) clamp(1.6rem, 7vw, 6rem) clamp(3rem, 7vw, 5rem);
  padding-left: clamp(2.4rem, 9vw, 7rem);
}

.hero-colegio {
  font-family: var(--fonte-mao);
  font-size: clamp(1rem, 2.4vw, 1.35rem);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin: 0 0 0.5rem;
  color: oklch(0.45 0.05 260);
}

.hero-titulo {
  font-family: var(--fonte-display);
  font-weight: 400;
  font-size: clamp(3.4rem, 14vw, 9.5rem);
  line-height: 0.95;
  margin: 0 0 1.2rem;
  user-select: none;
}

.hero-titulo .lt {
  display: inline-block;
  transform: rotate(var(--giro, 0deg)) translateY(var(--sobe, 0));
}

.hero-titulo .lt:nth-child(odd)  { --giro: -3deg; --sobe: -0.04em; }
.hero-titulo .lt:nth-child(even) { --giro: 2.5deg; --sobe: 0.03em; }

.c1 { color: var(--bic-azul); }
.c2 { color: var(--caneta-vermelha); }
.c3 { color: oklch(0.55 0.14 145); }

.letra-b {
  text-decoration: underline wavy var(--lapis-amarelo) 0.08em;
  text-underline-offset: 0.12em;
}

.lt-espaco { display: inline-block; width: 0.25em; }

.hero-tagline {
  font-size: clamp(1.15rem, 2.8vw, 1.6rem);
  font-weight: 500;
  max-width: 32ch;
  margin: 0 0 2.2rem;
}

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

.botao {
  display: inline-block;
  font-family: var(--fonte-display);
  font-size: clamp(1rem, 2.2vw, 1.25rem);
  text-decoration: none;
  text-align: center;
  color: var(--papel);
  background: var(--bic-azul);
  border: 3px solid var(--tinta);
  border-radius: 0.6rem 1.2rem 0.5rem 1.4rem;
  padding: 0.8rem 1.6rem;
  cursor: pointer;
  box-shadow: 4px 4px 0 var(--tinta);
  transition: transform 0.18s var(--ease-saida), box-shadow 0.18s var(--ease-saida);
  rotate: -1deg;
}

.botao:hover, .botao:focus-visible {
  transform: translate(-2px, -2px);
  box-shadow: 7px 7px 0 var(--tinta);
}

.botao:active {
  transform: translate(3px, 3px);
  box-shadow: 1px 1px 0 var(--tinta);
}

.botao small {
  display: block;
  font-family: var(--fonte-mao);
  font-size: 0.78em;
  opacity: 0.85;
}

.botao-azul { background: var(--bic-azul); }
.botao-papel { background: var(--papel); color: var(--tinta); rotate: 1.5deg; }
.botao-amarelo { background: var(--lapis-amarelo); color: var(--tinta); font-size: clamp(1.15rem, 2.6vw, 1.5rem); }
.botao-vermelho { background: var(--caneta-vermelha); rotate: -2deg; }

.hero-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  align-items: center;
}

/* ---------- carimbo ---------- */

.carimbo {
  font-family: var(--fonte-display);
  color: var(--caneta-vermelha);
  border: 4px double var(--caneta-vermelha);
  border-radius: 0.5rem;
  padding: 0.4rem 1rem;
  text-transform: uppercase;
  text-align: center;
  letter-spacing: 0.08em;
  opacity: 0.75;
  mask-image: radial-gradient(circle at 30% 40%, black 60%, transparent 98%);
}

.carimbo span {
  display: block;
  font-family: var(--fonte-caneta);
  font-size: 0.8em;
  text-transform: none;
  letter-spacing: 0;
}

.carimbo-hero {
  position: absolute;
  top: clamp(4rem, 10vw, 7rem);
  right: clamp(1rem, 6vw, 6rem);
  rotate: 12deg;
  font-size: clamp(0.85rem, 2.2vw, 1.3rem);
}

/* ---------- rabiscos ---------- */

.doodle {
  position: absolute;
  color: var(--bic-azul);
  opacity: 0.55;
  pointer-events: none;
}

.doodle-s {
  width: clamp(26px, 4vw, 44px);
  left: clamp(0.3rem, 1.6vw, 1.6rem);
  top: 38%;
}

.doodle-aviao {
  width: clamp(38px, 6vw, 64px);
  right: clamp(2rem, 12vw, 12rem);
  bottom: 18%;
  rotate: -15deg;
  color: var(--caneta-vermelha);
  opacity: 0.5;
}

/* ---------- placar de incidentes ---------- */

.placar {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: 2.6rem;
  background: var(--tinta);
  color: var(--giz);
  font-family: var(--fonte-mao);
  font-size: clamp(0.95rem, 2.2vw, 1.2rem);
  padding: 0.6rem 1.1rem;
  border-radius: 0.4rem;
  rotate: 1deg;
  box-shadow: 3px 4px 0 oklch(0.25 0.02 260 / 0.3);
}

.placar-numero {
  font-family: var(--fonte-display);
  font-size: 1.6em;
  background: var(--caneta-vermelha);
  color: var(--papel);
  padding: 0.05em 0.5em;
  border-radius: 0.3rem;
  transition: transform 0.3s var(--ease-saida);
}

.placar-numero.zerou {
  animation: placar-treme 0.5s var(--ease-saida);
}

@keyframes placar-treme {
  0%, 100% { transform: rotate(0); }
  25% { transform: rotate(-8deg) scale(1.25); }
  60% { transform: rotate(6deg) scale(1.15); }
}

/* =====================================================
   MURAL DE CORTIÇA
   ===================================================== */

.mural {
  background:
    radial-gradient(circle at 18% 32%, oklch(0.66 0.09 65 / 0.55) 1.5px, transparent 2.5px),
    radial-gradient(circle at 72% 64%, oklch(0.60 0.08 60 / 0.5) 1px, transparent 2px),
    radial-gradient(circle at 45% 85%, oklch(0.78 0.07 75 / 0.6) 1.5px, transparent 2.5px),
    var(--cortica);
  background-size: 47px 53px, 31px 37px, 59px 43px, auto;
  border-top: 12px solid var(--madeira);
  border-bottom: 12px solid var(--madeira);
  padding: clamp(2.5rem, 6vw, 5rem) clamp(1.4rem, 6vw, 6rem);
}

.titulo-mural { color: oklch(0.30 0.05 60); }
.sub-mural { color: oklch(0.34 0.04 60); }

.mural-grade {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: clamp(1.2rem, 3vw, 2.4rem) clamp(1rem, 2.5vw, 2rem);
}

.bilhete {
  position: relative;
  padding: 1.8rem 1.2rem 1.2rem;
  font-family: var(--fonte-mao);
  box-shadow: 2px 5px 8px oklch(0.30 0.05 60 / 0.35);
  transition: rotate 0.25s var(--ease-saida), box-shadow 0.25s var(--ease-saida);
}

.bilhete:hover {
  rotate: 0deg;
  box-shadow: 4px 10px 16px oklch(0.30 0.05 60 / 0.4);
}

/* percevejo */
.bilhete::before {
  content: "";
  position: absolute;
  top: 0.55rem;
  left: 50%;
  translate: -50% 0;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, oklch(0.75 0.18 25), oklch(0.45 0.20 25) 70%);
  box-shadow: 0 2px 3px oklch(0.25 0.05 60 / 0.5);
}

.bilhete h3 {
  font-family: var(--fonte-display);
  font-weight: 400;
  font-size: 1.15rem;
  margin: 0 0 0.4rem;
  letter-spacing: 0.05em;
}

.bilhete p {
  margin: 0;
  font-size: 1.12rem;
  line-height: 1.4;
}

.papel-amarelo { background: oklch(0.92 0.09 95); color: oklch(0.32 0.04 80); }
.papel-rosa    { background: oklch(0.90 0.06 10); color: oklch(0.32 0.05 10); }
.papel-azul    { background: oklch(0.90 0.05 240); color: oklch(0.30 0.05 250); }
.papel-verde   { background: oklch(0.91 0.07 140); color: oklch(0.30 0.05 150); }

/* =====================================================
   QUADRO-NEGRO
   ===================================================== */

.lousa {
  background: var(--papel);
  padding: clamp(2.5rem, 6vw, 5rem) clamp(1rem, 5vw, 5rem);
}

.lousa-quadro {
  background:
    radial-gradient(ellipse at 70% 20%, oklch(0.36 0.05 165 / 0.6), transparent 55%),
    radial-gradient(ellipse at 20% 80%, oklch(0.95 0.01 95 / 0.05), transparent 40%),
    var(--quadro-verde-fundo);
  border: 14px solid var(--madeira);
  border-radius: 6px;
  box-shadow: inset 0 0 40px oklch(0.20 0.04 165 / 0.6), 0 10px 24px oklch(0.25 0.02 260 / 0.25);
  padding: clamp(2rem, 5vw, 4rem) clamp(1.4rem, 5vw, 4.5rem) clamp(1.6rem, 4vw, 3rem);
  max-width: 70rem;
  margin-inline: auto;
}

.titulo-lousa {
  font-family: var(--fonte-mao);
  color: var(--giz);
  text-shadow: 0 0 6px oklch(0.95 0.01 95 / 0.35);
  text-decoration: underline wavy var(--giz-fraco) 2px;
  text-underline-offset: 0.3em;
  transform: rotate(-0.8deg);
}

.sub-lousa { color: var(--giz-fraco); }

.lista-piadas {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}

.piada {
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  border-bottom: 1px dashed oklch(0.95 0.01 95 / 0.2);
  padding: 0.9rem 0.4rem;
  cursor: pointer;
  font-family: var(--fonte-mao);
  color: var(--giz);
}

.piada:focus-visible {
  outline: 3px dashed var(--lapis-amarelo);
  outline-offset: 4px;
}

.piada-pergunta {
  display: block;
  font-size: clamp(1.15rem, 2.6vw, 1.5rem);
  text-shadow: 0 0 5px oklch(0.95 0.01 95 / 0.25);
}

.piada-pergunta::before {
  content: "✏️ ";
  font-size: 0.85em;
}

.piada-resposta {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s var(--ease-saida);
}

.piada-resposta > span {
  overflow: hidden;
  display: block;
  font-family: var(--fonte-caneta);
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  color: var(--lapis-amarelo);
  padding-left: 1.6rem;
}

.piada[aria-expanded="true"] .piada-resposta {
  grid-template-rows: 1fr;
}

.piada[aria-expanded="true"] .piada-pergunta::before {
  content: "💡 ";
}

.lousa-rodape {
  font-family: var(--fonte-caneta);
  color: var(--giz-fraco);
  font-size: 1.2rem;
  text-align: right;
  margin: 2rem 0 0;
  rotate: -1deg;
}

/* =====================================================
   GRADE CURRICULAR
   ===================================================== */

.horario {
  padding: clamp(2.5rem, 6vw, 5rem) clamp(1.4rem, 6vw, 6rem);
  padding-left: clamp(2.4rem, 8vw, 7rem);
}

.tabela-scroll { overflow-x: auto; }

.tabela-horario {
  border-collapse: collapse;
  width: 100%;
  min-width: 38rem;
  max-width: 64rem;
  background: var(--papel);
  border: 3px solid var(--tinta);
  box-shadow: 5px 6px 0 oklch(0.25 0.02 260 / 0.15);
  rotate: -0.5deg;
}

.tabela-horario th,
.tabela-horario td {
  border: 2px solid oklch(0.70 0.06 240 / 0.5);
  padding: 0.7rem 0.9rem;
  text-align: left;
  font-size: clamp(0.95rem, 2vw, 1.1rem);
}

.tabela-horario thead th {
  font-family: var(--fonte-display);
  font-weight: 400;
  background: var(--bic-azul);
  color: var(--papel);
  letter-spacing: 0.04em;
}

.tabela-horario td:first-child {
  font-family: var(--fonte-mao);
  white-space: nowrap;
}

.tabela-horario td:nth-child(2) { font-weight: 700; }

.linha-recreio td {
  background: var(--lapis-amarelo);
  font-family: var(--fonte-display);
  font-weight: 400;
  letter-spacing: 0.03em;
}

.horario small { font-family: var(--fonte-caneta); font-size: 0.85em; }

/* =====================================================
   CORPO DOCENTE
   ===================================================== */

.docentes {
  background: oklch(0.93 0.03 95);
  padding: clamp(2.5rem, 6vw, 5rem) clamp(1.4rem, 6vw, 6rem);
}

.docentes-fila {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.4rem, 3.5vw, 3rem);
  justify-content: center;
}

.polaroid {
  position: relative;
  background: oklch(0.99 0.005 95);
  width: min(240px, 100%);
  padding: 0.9rem 0.9rem 1.1rem;
  margin: 0;
  box-shadow: 3px 6px 12px oklch(0.25 0.02 260 / 0.25);
  transition: rotate 0.25s var(--ease-saida), transform 0.25s var(--ease-saida);
}

.polaroid:hover {
  rotate: 0deg;
  transform: translateY(-4px) scale(1.03);
}

/* fita adesiva */
.polaroid::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 50%;
  translate: -50% 0;
  rotate: -4deg;
  width: 80px;
  height: 26px;
  background: oklch(0.93 0.04 95 / 0.65);
  border-left: 1px dashed oklch(0.75 0.03 95 / 0.8);
  border-right: 1px dashed oklch(0.75 0.03 95 / 0.8);
}

.polaroid-foto {
  display: grid;
  place-items: center;
  font-size: 3.4rem;
  aspect-ratio: 1;
  background:
    radial-gradient(circle at 30% 25%, oklch(0.88 0.04 240), oklch(0.78 0.05 250));
  margin-bottom: 0.7rem;
}

.polaroid figcaption strong {
  display: block;
  font-family: var(--fonte-mao);
  font-size: 1.1rem;
  margin-bottom: 0.25rem;
}

.polaroid figcaption p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.4;
}

/* =====================================================
   HONRA AO MÉRITO
   ===================================================== */

.merito {
  padding: clamp(2.5rem, 6vw, 5rem) clamp(1.4rem, 6vw, 6rem);
  padding-left: clamp(2.4rem, 8vw, 7rem);
}

.lista-merito {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 62ch;
  display: grid;
  gap: 1.1rem;
  font-size: clamp(1.05rem, 2.3vw, 1.25rem);
}

.lista-merito li {
  display: flex;
  gap: 0.8rem;
  align-items: baseline;
  background: oklch(0.99 0.005 95 / 0.7);
  border: 2px dashed var(--bic-claro);
  border-radius: 0.6rem;
  padding: 0.9rem 1.1rem;
}

.lista-merito li:nth-child(odd)  { rotate: -0.6deg; }
.lista-merito li:nth-child(even) { rotate: 0.6deg; margin-left: clamp(0rem, 4vw, 3rem); }

.merito-medalha { font-size: 1.6em; flex-shrink: 0; }

/* =====================================================
   PROVA CORRIGIDA
   ===================================================== */

.prova-secao {
  background: oklch(0.91 0.02 260);
  padding: clamp(2.5rem, 6vw, 5rem) clamp(1.4rem, 6vw, 6rem);
}

.prova {
  background:
    repeating-linear-gradient(to bottom,
      oklch(0.985 0.008 95),
      oklch(0.985 0.008 95) calc(var(--linha-caderno) - 1px),
      oklch(0.70 0.06 240 / 0.3) calc(var(--linha-caderno) - 1px),
      oklch(0.70 0.06 240 / 0.3) var(--linha-caderno));
  max-width: 46rem;
  margin-inline: auto;
  padding: clamp(1.6rem, 4vw, 3rem);
  box-shadow: 4px 8px 20px oklch(0.25 0.02 260 / 0.3);
  position: relative;
}

/* canto dobrado */
.prova::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  border-style: solid;
  border-width: 0 38px 38px 0;
  border-color: oklch(0.91 0.02 260) oklch(0.91 0.02 260) oklch(0.90 0.02 95) oklch(0.90 0.02 95);
  box-shadow: -2px 2px 3px oklch(0.25 0.02 260 / 0.15);
}

.prova-cabecalho {
  border-bottom: 2px solid var(--tinta);
  padding-bottom: 0.4rem;
  margin-bottom: 1.4rem;
  font-size: 0.95rem;
}

.prova-cabecalho p { margin: 0.2rem 0; }

.prova-questoes {
  margin: 0;
  padding-left: 1.4rem;
  display: grid;
  gap: 1.6rem;
}

.questao { margin: 0 0 0.2rem; font-weight: 700; }

.resposta-aluno {
  font-family: var(--fonte-mao);
  font-size: 1.25rem;
  margin: 0;
  color: oklch(0.35 0.08 262);
}

.riscado-vermelho {
  text-decoration: line-through wavy var(--caneta-vermelha) 2px;
  text-decoration-skip-ink: none;
}

.correcao {
  font-family: var(--fonte-caneta);
  font-weight: 700;
  font-size: 1.45rem;
  color: var(--caneta-vermelha);
  margin: 0.2rem 0 0;
  rotate: -1deg;
}

.prova-rodape {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.nota-final { font-size: 1.7rem; }

.carimbo-prova {
  font-size: 1.1rem;
  rotate: -8deg;
}

/* =====================================================
   DEPOIMENTOS
   ===================================================== */

.depoimentos {
  padding: clamp(2.5rem, 6vw, 5rem) clamp(1.4rem, 6vw, 6rem);
  padding-left: clamp(2.4rem, 8vw, 7rem);
}

.depo-fila {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.4rem, 3vw, 2.5rem);
}

.depo {
  margin: 0;
  background: oklch(0.99 0.005 95);
  border: 3px solid var(--tinta);
  border-radius: 1rem 1.5rem 1rem 1.8rem;
  box-shadow: 4px 4px 0 var(--tinta);
  padding: 1.3rem 1.5rem;
  max-width: 30ch;
  flex: 1 1 240px;
}

.depo p {
  font-family: var(--fonte-mao);
  font-size: 1.2rem;
  margin: 0 0 0.7rem;
}

.depo cite {
  font-style: normal;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--bic-azul);
}

.depo cite::before { content: "~ "; }

/* =====================================================
   MATRÍCULA + BOTÃO PROIBIDO
   ===================================================== */

.matricula {
  background: var(--bic-azul);
  color: var(--papel);
  text-align: center;
  padding: clamp(3rem, 8vw, 6rem) clamp(1.4rem, 6vw, 6rem);
  position: relative;
  overflow: hidden;
}

.titulo-matricula { color: var(--papel); }
.sub-matricula { color: oklch(0.88 0.04 262); }

.matricula-acoes { margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }

.matricula-feedback,
.proibido-feedback {
  font-family: var(--fonte-caneta);
  font-size: clamp(1.3rem, 3vw, 1.8rem);
  min-height: 1.6em;
  margin: 1rem 0 0;
}

.zona-proibida {
  border-top: 3px dashed oklch(0.88 0.04 262 / 0.5);
  padding-top: clamp(2rem, 5vw, 3.5rem);
  max-width: 34rem;
  margin-inline: auto;
}

.proibido-aviso {
  font-family: var(--fonte-mao);
  font-size: 1.2rem;
  margin: 0 0 1rem;
}

/* bolinha de papel (criada via JS) */
.bolinha {
  position: fixed;
  top: -40px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, oklch(0.98 0.005 95), oklch(0.82 0.01 95) 60%, oklch(0.70 0.015 95));
  box-shadow:
    inset 2px -2px 4px oklch(0.60 0.02 95 / 0.6),
    inset -3px 3px 3px oklch(0.99 0.005 95 / 0.8);
  pointer-events: none;
  z-index: 99;
  animation: bolinha-cai var(--dura, 2.2s) cubic-bezier(0.5, 0, 0.9, 0.6) forwards;
}

@keyframes bolinha-cai {
  to { transform: translateY(110vh) rotate(540deg); }
}

/* =====================================================
   CARALHO DE ASA (a lenda)
   ===================================================== */

/* voadores soltos pelo JS, atravessam a tela */
.voador {
  position: fixed;
  left: -240px;
  z-index: 98;
  color: var(--bic-azul);
  opacity: 0.8;
  pointer-events: none;
  animation: voa-atravessa var(--dura, 9s) linear forwards;
}

.voador svg {
  width: clamp(64px, 9vw, 120px);
  animation: voa-bate 0.8s ease-in-out infinite alternate;
}

@keyframes voa-atravessa {
  to { transform: translateX(calc(100vw + 480px)); }
}

@keyframes voa-bate {
  from { transform: translateY(-9px) rotate(-5deg); }
  to   { transform: translateY(9px) rotate(5deg); }
}

/* no bilhete do mural */
.doodle-bilhete {
  width: 88px;
  margin: 0.6rem auto 0;
  opacity: 0.85;
}

/* desenhado a giz no canto da lousa */
.lousa-quadro { position: relative; }

.doodle-lousa {
  position: absolute;
  pointer-events: none;
  left: clamp(1rem, 4vw, 3.5rem);
  bottom: 1.2rem;
  color: var(--giz);
  opacity: 0.75;
  rotate: -6deg;
  width: clamp(70px, 9vw, 110px);
}

.doodle-lousa span {
  display: block;
  font-family: var(--fonte-caneta);
  font-size: 1.05rem;
  color: var(--giz-fraco);
  text-align: center;
}

/* na prova, circulado de vermelho */
.resposta-desenho {
  position: relative;
  display: inline-block;
  padding: 0.5rem 1.2rem;
  color: var(--bic-azul);
}

.doodle-prova { width: 120px; }

.rabisco-circulo {
  position: absolute;
  inset: -6px -4px;
  border: 3px solid var(--caneta-vermelha);
  border-radius: 48% 52% 55% 45% / 62% 45% 58% 40%;
  rotate: -3deg;
  opacity: 0.85;
  pointer-events: none;
}

/* =====================================================
   ESFIHA DE PELO (com pés de aranha)
   ===================================================== */

.esfiha { color: var(--tinta); overflow: visible; }

.esfiha-pernas path,
.esfiha-pelos path,
.esfiha-boca {
  fill: none;
  stroke: currentColor;
  stroke-width: 3;
  stroke-linecap: round;
}

.esfiha-pelos path { stroke-width: 2.5; }

.esfiha-massa {
  fill: oklch(0.85 0.09 78);
  stroke: currentColor;
  stroke-width: 3;
  stroke-linejoin: round;
}

.esfiha-olho {
  fill: oklch(0.99 0.005 95);
  stroke: currentColor;
  stroke-width: 2.5;
}

.esfiha-pupila { fill: currentColor; }

.perna {
  transform-box: fill-box;
  transform-origin: top center;
}

/* mascote na polaroid: pernas mexem no hover */
.polaroid-foto-mascote { background: radial-gradient(circle at 30% 25%, oklch(0.92 0.05 95), oklch(0.84 0.07 90)); }
.polaroid-foto-mascote .esfiha { width: 78%; }

.polaroid:hover .perna-a { animation: perna-mexe 0.3s ease-in-out infinite alternate; }
.polaroid:hover .perna-b { animation: perna-mexe 0.3s ease-in-out infinite alternate-reverse; }

/* esfiha passeando pela seção de matrícula */
.esfiha-caminhante {
  position: absolute;
  bottom: -6px;
  left: 0;
  pointer-events: none;
  animation: esfiha-passeia 26s linear infinite;
}

.esfiha-caminhante .esfiha {
  width: clamp(80px, 10vw, 120px);
  animation: esfiha-tremelica 0.45s ease-in-out infinite alternate;
}

.esfiha-caminhante .perna-a { animation: perna-mexe 0.28s ease-in-out infinite alternate; }
.esfiha-caminhante .perna-b { animation: perna-mexe 0.28s ease-in-out infinite alternate-reverse; }

@keyframes esfiha-passeia {
  from { transform: translateX(-150px); }
  to   { transform: translateX(calc(100vw + 150px)); }
}

@keyframes esfiha-tremelica {
  from { transform: translateY(0) rotate(-2deg); }
  to   { transform: translateY(-5px) rotate(2deg); }
}

@keyframes perna-mexe {
  from { rotate: -9deg; }
  to   { rotate: 9deg; }
}

/* =====================================================
   RODAPÉ
   ===================================================== */

.rodape {
  background: var(--tinta);
  color: oklch(0.85 0.02 260);
  text-align: center;
  padding: 2.5rem 1.5rem 3rem;
  font-size: 0.95rem;
}

.rodape p { margin: 0.4rem 0; }

.rodape-principal {
  font-family: var(--fonte-display);
  font-size: 1.15rem;
  color: var(--papel);
}

.rodape-miudo {
  font-family: var(--fonte-caneta);
  font-size: 1.05rem;
  opacity: 0.7;
}

/* =====================================================
   MOVIMENTO REDUZIDO
   ===================================================== */

@media (prefers-reduced-motion: reduce) {
  .faixa-trilho { animation: none; flex-wrap: wrap; width: auto; }
  .faixa-conteudo { white-space: normal; }
  .faixa-conteudo[aria-hidden="true"] { display: none; }
  .piada-resposta { transition: none; }
  .botao, .bilhete, .polaroid { transition: none; }
  .bolinha { display: none; }
  .placar-numero.zerou { animation: none; }
  .voador { display: none; }
  .esfiha-caminhante { animation: none; left: auto; right: 6%; }
  .esfiha-caminhante .esfiha,
  .esfiha-caminhante .perna,
  .polaroid:hover .perna { animation: none; }
}
