/* =============================================================
   Show da Misericórdia — visual de programa de auditório
   Cores da marca da paróquia: azul-marinho e dourado.
   ============================================================= */
:root {
  --marinho: #0B1E3F;
  --marinho-escuro: #061228;
  --marinho-claro: #1B3A6B;
  --ouro: #D4AF37;
  --ouro-claro: #F3D77A;
  --branco: #ffffff;
  --verde: #2fbf71;
  --vermelho: #e05561;
  --laranja: #E8A33D;
  --texto-suave: #b9c6e0;
  --fonte: "Trebuchet MS", "Segoe UI", Verdana, Arial, sans-serif;
  --raio: 14px;
}

* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  background: var(--marinho-escuro);
  color: var(--branco);
  font-family: var(--fonte);
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}
button { font-family: inherit; cursor: pointer; }
button:disabled { cursor: default; }
[hidden] { display: none !important; }

/* ---------------- O palco (fundo) ---------------- */
#palco {
  position: fixed; inset: 0; z-index: 0; overflow: hidden;
  background:
    radial-gradient(ellipse 70% 55% at 50% 12%, rgba(91, 75, 170, .45), transparent 70%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 2px, transparent 2px 90px),
    linear-gradient(180deg, #0a1631 0%, #0B1E3F 45%, #08142c 100%);
}
/* vitral gótico com a cruz no centro */
.vitral {
  position: absolute; left: 50%; top: 2vh; width: min(17vmin, 150px); aspect-ratio: 1 / 1.7; transform: translateX(-50%);
  border-radius: 50% 50% 6px 6px / 32% 32% 6px 6px;
  background:
    linear-gradient(#f3d77a, #f3d77a) 50% 30% / 12% 62% no-repeat,
    linear-gradient(#f3d77a, #f3d77a) 50% 26% / 56% 9% no-repeat,
    repeating-linear-gradient(0deg, #1a1208 0 3px, transparent 3px 26px),
    repeating-linear-gradient(90deg, #1a1208 0 3px, transparent 3px 24px),
    radial-gradient(ellipse at 50% 35%, #fff2b8 0 12%, #e2a92c 22%, #b8352c 42%, #1f5fbf 64%, #5a2a9c 85%);
  border: 5px solid #2a1f0c;
  box-shadow: 0 0 0 3px var(--ouro), 0 0 70px 14px rgba(243, 215, 122, .22);
  opacity: .5;
}
.holofote {
  position: absolute; top: -5vh; width: 34vw; height: 115vh; transform-origin: 50% 0;
  background: linear-gradient(180deg, rgba(255, 244, 214, .20), rgba(255, 244, 214, .02) 80%, transparent);
  clip-path: polygon(46% 0, 54% 0, 100% 100%, 0 100%);
  filter: blur(2px);
  mix-blend-mode: screen;
  animation: balanco 9s ease-in-out infinite alternate;
}
.holofote.h1 { left: -6vw; animation-delay: -2s; }
.holofote.h2 { left: 33vw; animation-duration: 12s; opacity: .7; }
.holofote.h3 { right: -6vw; animation-delay: -5s; animation-direction: alternate-reverse; }
@keyframes balanco { from { transform: rotate(-14deg); } to { transform: rotate(14deg); } }
.chao {
  position: absolute; left: 0; right: 0; bottom: 0; height: 26vh;
  background:
    radial-gradient(ellipse 45% 40% at 50% 30%, rgba(212, 175, 55, .22), transparent 70%),
    linear-gradient(180deg, #13264d, #050c1d);
  border-top: 2px solid rgba(212, 175, 55, .35);
}
#plateia {
  position: absolute; left: 0; bottom: 0; width: 100%; height: 13vh;
  image-rendering: pixelated; image-rendering: crisp-edges;
  filter: drop-shadow(0 -1px 0 rgba(243, 215, 122, .45));
}
#confete { position: fixed; inset: 0; z-index: 50; pointer-events: none; }

/* ---------------- Telas ---------------- */
.tela { position: fixed; inset: 0; z-index: 2; display: none; }
.tela.ativa { display: flex; animation: aparecer .35s ease; }
@keyframes aparecer { from { opacity: 0; } to { opacity: 1; } }

.btn {
  border: 2px solid rgba(243, 215, 122, .55); border-radius: 999px;
  background: linear-gradient(180deg, #1d3a70, #10244a);
  color: var(--branco); font-size: 17px; font-weight: bold; padding: 12px 24px;
  box-shadow: 0 4px 0 #050c1d, 0 6px 18px rgba(0,0,0,.35);
  transition: transform .12s, filter .12s;
}
.btn:hover:not(:disabled) { transform: translateY(-2px); filter: brightness(1.12); }
.btn:active:not(:disabled) { transform: translateY(2px); box-shadow: 0 2px 0 #050c1d; }
.btn:focus-visible, .alt:focus-visible, .ajuda:focus-visible, .trilha:focus-visible { outline: 3px solid var(--ouro-claro); outline-offset: 3px; }
.btn-ouro { background: linear-gradient(180deg, #f6dc85, #d4af37 55%, #b08d22); color: #2a1d00; border-color: #fff1bd; }
.btn-grande { font-size: 24px; padding: 16px 48px; }
.btn-pequeno { font-size: 14px; padding: 8px 14px; }
.btn[aria-pressed="false"] { opacity: .75; }

/* ---------------- Tela inicial ---------------- */
#tela-inicio { flex-direction: column; align-items: center; justify-content: space-between; padding: 2vh 16px 0; overflow-y: auto; overflow-x: hidden; }
.inicio-conteudo { display: flex; flex-direction: column; align-items: center; gap: 1.2vh; width: 100%; max-width: 900px; flex: 1; justify-content: center; }
.logo { position: relative; text-align: center; padding: 1vh 0; }
.logo-raios {
  position: absolute; left: 50%; top: 50%; width: 140%; aspect-ratio: 1; transform: translate(-50%, -50%);
  background: repeating-conic-gradient(rgba(243, 215, 122, .16) 0 6deg, transparent 6deg 18deg);
  -webkit-mask: radial-gradient(circle, #000 15%, transparent 65%); mask: radial-gradient(circle, #000 15%, transparent 65%);
  animation: girar 40s linear infinite; z-index: -1;
}
@keyframes girar { to { transform: translate(-50%, -50%) rotate(360deg); } }
.logo-pre { margin: 0 auto; max-width: 92vw; font-size: clamp(11px, 1.7vh, 16px); color: var(--texto-suave); letter-spacing: .08em; text-transform: uppercase; }
.logo h1 {
  margin: .1em 0 0; font-size: clamp(38px, min(9vh, 14vw), 96px); line-height: .95; font-weight: 900; letter-spacing: -.01em;
  background: linear-gradient(180deg, #fff6cf 0%, #f3d77a 35%, #d4af37 60%, #9c7a1c 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 4px 0 #3a2a05) drop-shadow(0 0 24px rgba(243, 215, 122, .35));
}
.logo h1 span { display: block; font-size: .45em; color: var(--branco); -webkit-text-fill-color: var(--branco); letter-spacing: .15em; text-transform: uppercase; }
.logo-sub { margin: .4em 0 0; font-size: clamp(16px, 2.4vh, 22px); color: var(--ouro-claro); font-style: italic; }
.inicio-apresentador { position: relative; display: flex; flex-direction: column; align-items: center; }
.inicio-apresentador canvas { height: clamp(140px, 28vh, 260px); }
.placa-provisorio { margin: 2px 0 0; font-size: 11px; color: var(--texto-suave); background: rgba(0,0,0,.35); padding: 2px 10px; border-radius: 99px; }
.inicio-botoes { display: flex; flex-direction: column; align-items: center; gap: 1.2vh; }
.inicio-opcoes { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.recorde { margin: 0; color: var(--ouro-claro); min-height: 1.2em; font-size: 15px; }
.rodape { display: flex; align-items: center; gap: 10px; padding: 8px; font-size: 12px; color: var(--texto-suave); position: relative; z-index: 3; }
.rodape img { height: 40px; }
.rodape span { line-height: 1.3; }
.rodape b { color: var(--ouro-claro); }

canvas.apresentador { image-rendering: pixelated; image-rendering: crisp-edges; aspect-ratio: 40 / 64; filter: drop-shadow(0 8px 10px rgba(0,0,0,.5)); }

/* balão de fala do apresentador */
.balao {
  position: absolute; z-index: 5; max-width: min(340px, 70vw);
  background: #fffdf5; color: #1d1530; border-radius: 16px; padding: 10px 14px;
  font-size: clamp(14px, 1.9vh, 18px); font-weight: bold; line-height: 1.3;
  box-shadow: 0 6px 20px rgba(0,0,0,.4); border: 3px solid var(--ouro);
  opacity: 0; transform: translateY(6px) scale(.96); transition: opacity .2s, transform .2s; pointer-events: none;
}
.balao.visivel { opacity: 1; transform: none; }
.balao::after { content: ""; position: absolute; width: 16px; height: 16px; background: #fffdf5; border: 3px solid var(--ouro); border-top: 0; border-right: 0; }
#balao-inicio { left: calc(50% + 70px); top: 0; }
#balao-inicio::after { left: -10px; top: 18px; transform: rotate(45deg); }

/* ---------------- Escolha da trilha ---------------- */
#tela-trilha { flex-direction: column; align-items: center; justify-content: center; gap: 3vh; padding: 16px; }
.titulo-tela { margin: 0; font-size: clamp(26px, 4.5vh, 44px); color: var(--ouro-claro); text-shadow: 0 3px 0 #000; }
.trilhas { display: grid; grid-template-columns: repeat(3, minmax(0, 220px)); gap: 18px; }
.trilha {
  display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 26px 14px;
  border-radius: 20px; border: 3px solid rgba(243, 215, 122, .4); color: var(--branco);
  background: linear-gradient(180deg, rgba(29, 58, 112, .95), rgba(11, 30, 63, .95));
  box-shadow: 0 8px 24px rgba(0,0,0,.4); transition: transform .15s, border-color .15s;
}
.trilha:hover { transform: translateY(-4px); border-color: var(--ouro); }
.trilha.ultima { border-color: var(--ouro); }
.trilha-icone { font-size: 52px; }
.trilha strong { font-size: 21px; }
.trilha small { color: var(--texto-suave); font-size: 14px; }

/* ---------------- Tela do jogo ---------------- */
#tela-jogo.ativa {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(170px, 17vw, 230px);
  grid-template-rows: auto minmax(0, 1fr) auto;
  grid-template-areas: "topo topo" "palco escada" "painel escada";
  gap: 0 14px; padding: 10px 14px 12px;
}
.topo { grid-area: topo; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.marca-mini { font-size: 18px; color: var(--texto-suave); white-space: nowrap; }
.marca-mini b { color: var(--ouro); }
.ajudas { display: flex; gap: 8px; }
.ajuda {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 1px; min-width: 76px;
  padding: 6px 8px 5px; border-radius: 14px; color: var(--branco);
  border: 2px solid rgba(243, 215, 122, .55); background: linear-gradient(180deg, #23457f, #10244a);
  box-shadow: 0 3px 0 #050c1d; transition: transform .12s, opacity .2s;
}
.ajuda span { font-size: 24px; line-height: 1.1; }
.ajuda small { font-size: 11px; font-weight: bold; white-space: nowrap; }
.ajuda small b { color: var(--ouro-claro); letter-spacing: 1px; }
.ajuda:hover:not(:disabled) { transform: translateY(-2px); border-color: var(--ouro); }
.ajuda:disabled { opacity: .55; }
.ajuda.usada { opacity: .35; filter: grayscale(1); }
.ajuda.usada::after { content: "✕"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 34px; color: var(--vermelho); text-shadow: 0 0 4px #000; }
.ajudas.bloqueadas { opacity: .3; }

.area-palco { display: contents; }
.apresentador-box { grid-area: palco; position: relative; display: flex; align-items: flex-end; justify-content: center; min-height: 0; padding-bottom: 4px; }
#apresentador { height: min(100%, 300px); min-height: 110px; transform: translateX(-90px); }
#balao { left: calc(50% - 30px); top: 6%; }
#balao::after { left: -10px; top: 18px; transform: rotate(45deg); }
.degrau-mini { display: none; }

/* a escada dos talentos */
.escada {
  grid-area: escada; list-style: none; margin: 4px 0 0; padding: 8px; align-self: stretch;
  display: flex; flex-direction: column; gap: 2px;
  background: linear-gradient(180deg, rgba(6, 18, 40, .85), rgba(11, 30, 63, .85));
  border: 2px solid rgba(212, 175, 55, .45); border-radius: var(--raio);
  box-shadow: 0 10px 30px rgba(0,0,0,.4);
}
.escada li {
  flex: 1; min-height: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 0 10px; border-radius: 8px; font-size: clamp(11px, 1.75vh, 16px); font-weight: bold;
  color: #8fa0c4; border-left: 4px solid var(--cor); background: rgba(255,255,255,.03);
  transition: background .3s, color .3s, transform .3s;
}
.escada li .n { opacity: .7; font-size: .85em; }
.escada li.fim-bloco { margin-top: 5px; }
.escada li.topo-ouro { color: var(--ouro-claro); background: linear-gradient(90deg, rgba(212,175,55,.25), rgba(212,175,55,.05)); }
.escada li.topo-ouro .v::before { content: "★ "; }
.escada li.feito { color: var(--ouro-claro); background: rgba(212, 175, 55, .14); }
.escada li.atual {
  color: #2a1d00; background: linear-gradient(90deg, #f6dc85, #d4af37); transform: scale(1.04);
  box-shadow: 0 0 16px rgba(243, 215, 122, .7); animation: pulsar 1.4s ease-in-out infinite;
}
.escada li.brilho { animation: brilho .9s ease 2; }
@keyframes pulsar { 50% { box-shadow: 0 0 4px rgba(243, 215, 122, .3); } }
@keyframes brilho { 50% { background: #fff6cf; color: #2a1d00; } }

/* painel da pergunta */
.painel { grid-area: painel; width: 100%; max-width: 1040px; justify-self: center; display: flex; flex-direction: column; gap: 10px; position: relative; }
.locutor {
  position: absolute; top: -26px; left: 14px; font-size: 12px; font-weight: bold; color: var(--ouro-claro);
  background: rgba(0,0,0,.55); padding: 3px 10px; border-radius: 99px; opacity: 0; transition: opacity .2s;
}
.locutor::before { content: "📢 Locutor lendo…"; }
.locutor.falando { opacity: 1; animation: piscar 1s ease-in-out infinite; }
@keyframes piscar { 50% { opacity: .55; } }
.pergunta-box {
  background: linear-gradient(180deg, rgba(27, 58, 107, .97), rgba(11, 30, 63, .97));
  border: 3px solid var(--ouro); border-radius: 18px; padding: 10px 22px 16px;
  box-shadow: 0 0 0 4px rgba(6, 18, 40, .8), 0 12px 30px rgba(0,0,0,.45);
}
.painel.ouro .pergunta-box { border-color: #fff1bd; box-shadow: 0 0 0 4px rgba(6, 18, 40, .8), 0 0 40px rgba(243, 215, 122, .55); }
.pergunta-topo { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; font-weight: bold; color: var(--texto-suave); text-transform: uppercase; letter-spacing: .05em; }
.pergunta { margin: 6px 0 0; font-size: clamp(19px, 3vh, 30px); font-weight: bold; line-height: 1.25; text-align: center; min-height: 1.25em; }

.alternativas { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.alt {
  display: flex; align-items: center; gap: 12px; text-align: left; padding: 10px 16px 10px 10px; min-height: 58px;
  border-radius: 999px; border: 2px solid rgba(243, 215, 122, .6); color: var(--branco);
  font-size: clamp(16px, 2.3vh, 22px); font-weight: bold;
  background: linear-gradient(180deg, #1f3f78, #0f2450);
  box-shadow: 0 4px 0 #050c1d; transition: transform .12s, background .2s, opacity .3s;
}
.alt .letra {
  flex: none; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%;
  background: linear-gradient(180deg, #f6dc85, #b08d22); color: #2a1d00; font-size: 19px; font-weight: 900;
}
.alt:hover:not(:disabled) { transform: translateY(-2px); background: linear-gradient(180deg, #2a5296, #143063); }
.alt.lendo { box-shadow: 0 0 0 3px rgba(255, 255, 255, .7), 0 4px 0 #050c1d; }
.alt.marcada { background: linear-gradient(180deg, #f2b552, #d48a1c); color: #2a1500; border-color: #ffe2a8; }
.alt.marcada .letra { background: #fff3d6; }
.alt.suspense { animation: suspense .35s steps(2) infinite; }
@keyframes suspense { 50% { background: linear-gradient(180deg, #1f3f78, #0f2450); color: var(--branco); } }
.alt.certa { background: linear-gradient(180deg, #4fdc8e, #1f9b57); color: #032612; border-color: #c9ffe0; animation: certa .5s ease 3; }
.alt.certa .letra { background: #e6fff0; color: #0b5a2e; }
.alt.errada { background: linear-gradient(180deg, #f07a85, #b8323f); color: #2b0004; border-color: #ffd0d5; }
@keyframes certa { 50% { transform: scale(1.04); box-shadow: 0 0 30px rgba(79, 220, 142, .8); } }
.alt.voando { animation: voar .7s ease-in forwards; pointer-events: none; }
@keyframes voar { to { transform: translate(40px, -50px) rotate(8deg); opacity: 0; } }
.alt.eliminada { animation: none; opacity: .12; transform: none; }
.alt.saindo { opacity: .25; transition: opacity .4s; pointer-events: none; }

.confirmar, .explicacao {
  background: rgba(6, 18, 40, .94); border: 2px solid var(--ouro); border-radius: 16px; padding: 12px 18px;
  text-align: center; animation: aparecer .25s ease;
}
.confirmar p { margin: 0 0 10px; font-size: clamp(18px, 2.6vh, 26px); font-weight: bold; color: var(--ouro-claro); }
.confirmar div { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.explicacao { text-align: left; max-height: 34vh; overflow-y: auto; }
.explicacao h3 { margin: 0 0 6px; font-size: clamp(17px, 2.4vh, 23px); }
.explicacao h3 span { color: var(--ouro-claro); white-space: nowrap; }
.explicacao p { margin: 0 0 8px; font-size: clamp(15px, 2vh, 19px); line-height: 1.4; }
.explicacao .ref { color: var(--texto-suave); font-size: 14px; }
.explicacao .btn { display: block; margin: 4px 0 0 auto; }

.valores { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: 10px; }
.valor {
  display: flex; align-items: center; justify-content: center; gap: 8px; padding: 6px 10px; border-radius: 12px;
  background: rgba(6, 18, 40, .85); border: 2px solid rgba(255,255,255,.12); font-size: 17px; flex-wrap: wrap;
}
.valor small { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-suave); }
.valor.errar b { color: #ff9aa3; }
.valor.parar b { color: var(--ouro-claro); }
.valor.acertar b { color: #7cf0ae; }
.valor.parar { border-color: rgba(212, 175, 55, .5); }

/* ---------------- Fim ---------------- */
#tela-fim { align-items: center; justify-content: center; padding: 16px; overflow-y: auto; }
.fim-conteudo {
  width: 100%; max-width: 620px; text-align: center; padding: 26px 22px; margin: auto;
  background: linear-gradient(180deg, rgba(27, 58, 107, .96), rgba(6, 18, 40, .96));
  border: 3px solid var(--ouro); border-radius: 24px; box-shadow: 0 0 50px rgba(243, 215, 122, .25);
}
.fim-apresentador { display: block; height: 150px; margin: -110px auto 4px; }
#tela-fim .fim-conteudo { margin-top: 120px; }
#balao-fim { position: relative; margin: 0 auto 10px; max-width: 460px; display: none; }
#balao-fim.visivel { display: block; }
#balao-fim::after { display: none; }
.fim-pre { margin: 0; font-size: 20px; color: var(--texto-suave); }
.fim-talentos {
  margin: 6px 0; font-size: clamp(48px, 9vh, 80px); line-height: 1;
  background: linear-gradient(180deg, #fff6cf, #d4af37 60%, #9c7a1c); -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 3px 0 #3a2a05);
}
.fim-talentos small { font-size: .4em; }
.fim-degrau { margin: 0 0 14px; color: var(--ouro-claro); font-weight: bold; }
.fim-parabola { margin: 0 auto 10px; max-width: 480px; font-style: italic; font-size: 17px; line-height: 1.45; color: #e6ecff; }
.fim-parabola cite { display: block; margin-top: 4px; font-size: 13px; color: var(--texto-suave); font-style: normal; }
.fim-pergunta { font-size: 20px; font-weight: bold; color: var(--ouro-claro); margin: 12px 0 18px; }
.fim-botoes { display: flex; flex-direction: column; align-items: center; gap: 10px; }

/* ---------------- Janelas ---------------- */
.modal { position: fixed; inset: 0; z-index: 40; display: grid; place-items: center; padding: 16px; background: rgba(3, 8, 20, .72); backdrop-filter: blur(3px); animation: aparecer .2s; }
.modal-caixa {
  width: 100%; max-width: 600px; max-height: 92vh; overflow-y: auto; padding: 20px 22px; text-align: center;
  background: linear-gradient(180deg, #1b3a6b, #0b1e3f); border: 3px solid var(--ouro); border-radius: 22px;
  box-shadow: 0 20px 60px rgba(0,0,0,.6);
}
.modal-caixa h2 { margin: 0 0 10px; color: var(--ouro-claro); font-size: 24px; }
.modal-caixa p { font-size: 17px; line-height: 1.4; }
.modal-destaque { font-size: 21px !important; font-weight: bold; color: var(--ouro-claro); }
.modal-botoes { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 14px; }
.obs { color: var(--texto-suave); font-size: 14px !important; }
.lista-como { text-align: left; padding-left: 4px; list-style: none; margin: 0; }
.lista-como li { margin-bottom: 10px; font-size: 16px; line-height: 1.4; }

/* Bíblia aberta */
.biblia { perspective: 800px; margin: 6px auto 4px; max-width: 480px; }
.pagina {
  position: relative; padding: 26px 30px; border-radius: 6px 6px 10px 10px; color: #3a2410;
  background:
    linear-gradient(90deg, rgba(0,0,0,.18) 0, transparent 6%, transparent 47%, rgba(0,0,0,.22) 50%, transparent 53%, transparent 94%, rgba(0,0,0,.18) 100%),
    #f6ecd2;
  box-shadow: 0 0 0 6px #6b1d1d, 0 0 0 8px var(--ouro), 0 12px 30px rgba(0,0,0,.5);
  animation: abrir .6s ease;
}
@keyframes abrir { from { transform: rotateX(60deg); opacity: 0; } }
.versiculo { margin: 0; font-family: Georgia, "Times New Roman", serif; font-style: italic; font-size: 21px !important; line-height: 1.45; }
.ref-biblia { margin: 10px 0 0; font-weight: bold; color: #8a1c1c; letter-spacing: .05em; }

/* cartas dos santos */
.cartas-santos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 10px; }
.carta-santo {
  display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px; border-radius: 14px;
  border: 3px solid var(--ouro); background: #0b1e3f; color: var(--branco); font-weight: bold; font-size: 14px;
  transition: transform .15s, opacity .3s;
}
.carta-santo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 8px; background: #1b3a6b; }
.carta-santo:hover:not(:disabled) { transform: translateY(-4px) rotate(-1deg); }
.carta-santo:disabled { opacity: .35; }
.carta-santo.escolhida { opacity: 1; box-shadow: 0 0 25px rgba(243, 215, 122, .8); }
.resposta-santo { margin-top: 12px; padding: 10px; border-radius: 12px; background: rgba(0,0,0,.3); animation: aparecer .3s; }
.resposta-santo p { margin: 4px 0; }
.fala-santo { font-size: 22px !important; color: var(--ouro-claro); }

/* Voz da Assembleia */
.barras { display: flex; justify-content: center; gap: 18px; height: 200px; margin: 12px 0 4px; }
.barra-col { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 60px; }
.barra-col.fora { opacity: .25; }
.barra { flex: 1; width: 100%; display: flex; align-items: flex-end; background: rgba(255,255,255,.07); border-radius: 8px 8px 0 0; overflow: hidden; }
.barra-cheia { width: 100%; height: 0; transition: height 1.4s cubic-bezier(.2, .8, .2, 1); border-radius: 6px 6px 0 0; }
.barra-col:nth-child(1) .barra-cheia { background: linear-gradient(#5fe39a, #2a9d63); }
.barra-col:nth-child(2) .barra-cheia { background: linear-gradient(#78a9ff, #2f63c9); }
.barra-col:nth-child(3) .barra-cheia { background: linear-gradient(#ffc56b, #c98420); }
.barra-col:nth-child(4) .barra-cheia { background: linear-gradient(#ff8a95, #c23a48); }
.barra-col b { font-size: 20px; }
.pct { font-weight: bold; }

/* faixa de mudança de bloco */
.faixa { position: fixed; inset: 0; z-index: 30; display: grid; place-items: center; background: rgba(3, 8, 20, .55); cursor: pointer; }
.faixa-texto {
  width: 120%; padding: 4vh 0; text-align: center; transform: rotate(-4deg);
  font-size: clamp(30px, 7vh, 70px); font-weight: 900; color: #fff; text-shadow: 0 4px 0 rgba(0,0,0,.4);
  background: linear-gradient(90deg, transparent, var(--cor) 15%, var(--cor) 85%, transparent);
  animation: faixa .5s cubic-bezier(.2, 1.4, .4, 1);
}
@keyframes faixa { from { transform: rotate(-4deg) translateX(-100%); } }

/* ---------------- Letras grandes ---------------- */
.letras-grandes .pergunta { font-size: clamp(23px, 3.6vh, 36px); }
.letras-grandes .alt { font-size: clamp(19px, 2.8vh, 26px); }
.letras-grandes .explicacao p, .letras-grandes .balao { font-size: 20px; }

/* ---------------- Celular em pé / telas estreitas ---------------- */
@media (max-width: 760px) {
  body { overflow: auto; }
  #tela-jogo.ativa {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto minmax(0, 1fr);
    grid-template-areas: "topo" "palco" "mini" "painel";
    gap: 6px; padding: 8px 10px 10px; overflow-y: auto;
  }
  .topo { flex-wrap: wrap; justify-content: center; }
  .marca-mini { display: none; }
  .ajudas { gap: 4px; flex: 1; justify-content: space-between; }
  .ajuda { min-width: 0; flex: 1; padding: 5px 2px 4px; }
  .ajuda span { font-size: 20px; }
  .ajuda small { font-size: 9.5px; }
  #btn-som-jogo { position: absolute; top: 8px; right: 8px; display: none; }
  .escada { display: none; }
  .apresentador-box { height: 21vh; min-height: 130px; justify-content: flex-start; padding-left: 4vw; }
  #apresentador { height: 100%; transform: none; }
  #balao { left: calc(4vw + 90px); right: 4px; top: 4px; max-width: none; font-size: 14px; }
  .degrau-mini { display: block; grid-area: mini; text-align: center; font-size: 14px; background: rgba(6,18,40,.85); border: 1px solid rgba(212,175,55,.4); border-radius: 99px; padding: 5px 10px; }
  .painel { align-self: start; }
  .locutor { display: none; }
  .pergunta-topo { font-size: 11px; }
  .pergunta-box { padding: 8px 14px 12px; }
  .pergunta { font-size: 19px; }
  .alternativas { grid-template-columns: 1fr; gap: 8px; }
  .alt { min-height: 50px; font-size: 16px; padding: 7px 12px 7px 7px; }
  .alt .letra { width: 34px; height: 34px; }
  .valores { grid-template-columns: 1fr 1.4fr 1fr; gap: 6px; }
  .valor { flex-direction: column; gap: 2px; font-size: 15px; padding: 5px; }
  .valor .btn { padding: 4px 10px; font-size: 13px; }
  .explicacao { max-height: none; }
  .trilhas { grid-template-columns: 1fr; width: 100%; max-width: 360px; gap: 10px; }
  .trilha { flex-direction: row; padding: 14px 16px; gap: 14px; text-align: left; }
  .trilha-icone { font-size: 40px; }
  .trilha strong { display: block; }
  #balao-inicio { left: auto; right: 0; top: -10px; max-width: 48vw; font-size: 13px; }
  .inicio-apresentador { width: 100%; align-items: flex-start; padding-left: 12vw; }
  .cartas-santos { gap: 6px; }
  .carta-santo { font-size: 12px; padding: 5px; }
  .barras { gap: 10px; height: 170px; }
  #palco .vitral { opacity: .3; }
}

/* celular deitado (pouca altura) */
@media (max-height: 520px) and (min-width: 761px) {
  #tela-jogo.ativa { grid-template-columns: minmax(0, 1fr) 150px; padding: 6px 10px; }
  .ajuda { min-width: 60px; padding: 3px 6px; }
  .ajuda span { font-size: 18px; }
  .pergunta { font-size: 18px; }
  .alt { min-height: 42px; font-size: 15px; padding: 5px 12px 5px 6px; }
  .alt .letra { width: 30px; height: 30px; }
  .escada li { font-size: 10px; }
  .valor { font-size: 14px; padding: 3px 8px; }
  #apresentador { min-height: 70px; }
}

@media (prefers-reduced-motion: reduce) {
  .holofote, .logo-raios, .escada li.atual { animation: none; }
}

/* na tela inicial o vitral sairia atrás do título: lá ficam só os raios do logo */
body:not([data-tela]) .vitral, body[data-tela="tela-inicio"] .vitral, body[data-tela="tela-fim"] .vitral { display: none; }

/* ---------------- Intervalo: os "comerciais" da paróquia ---------------- */
.intervalo { position: fixed; inset: 0; z-index: 35; display: grid; place-items: center; padding: 16px; background: rgba(3, 8, 20, .82); backdrop-filter: blur(4px); overflow-y: auto; animation: aparecer .3s; }
.intervalo-caixa {
  width: 100%; max-width: 760px; padding: 18px 20px 20px; text-align: center; border-radius: 22px;
  background: repeating-linear-gradient(0deg, rgba(255,255,255,.02) 0 2px, transparent 2px 4px), linear-gradient(180deg, #1b3a6b, #0b1e3f);
  border: 4px solid var(--ouro); box-shadow: 0 0 0 8px #050c1d, 0 0 60px rgba(243, 215, 122, .3);
}
.intervalo-topo { font-size: clamp(18px, 2.6vh, 24px); font-weight: bold; color: var(--ouro-claro); margin-bottom: 12px; }
.no-ar { display: inline-block; margin-right: 8px; padding: 2px 10px; border-radius: 6px; background: #c0392b; color: #fff; font-size: .7em; letter-spacing: .08em; animation: piscar 1.2s infinite; vertical-align: middle; }
.avisos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; text-align: left; }
.aviso { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border-radius: 14px; background: rgba(6, 18, 40, .7); border: 1px solid rgba(243, 215, 122, .35); }
.aviso-icone { font-size: 30px; line-height: 1; }
.aviso b { color: var(--ouro-claro); font-size: 17px; }
.aviso p { margin: 4px 0 0; font-size: 15px; line-height: 1.35; }
.aviso .aviso-missa { margin-top: 8px; padding: 6px 10px; border-radius: 10px; background: rgba(243, 215, 122, .14); color: var(--ouro-claro); font-weight: bold; }
.aviso .btn-whats { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; padding: 8px 14px; font-size: 15px;
  border-radius: 999px; background: #25d366; color: #fff; text-decoration: none; font-weight: bold; box-shadow: 0 3px 0 #128c4a; }
.aviso .btn-whats:hover, .aviso .btn-whats:focus-visible { background: #1ebe5b; }
.mis-card {
  display: flex; gap: 16px; align-items: center; margin-top: 14px; padding: 14px; text-align: left; border-radius: 16px;
  background: linear-gradient(135deg, rgba(192, 57, 43, .22), rgba(255, 255, 255, .06)); border: 2px solid #ffb3a8;
}
.mis-card img { width: 112px; height: 112px; image-rendering: pixelated; flex: none; filter: drop-shadow(0 0 14px rgba(255, 240, 200, .6)); }
.mis-card h3 { margin: 0; color: #ffd2cb; font-size: 21px; }
.mis-sub { margin: 2px 0 6px; font-size: 13px; color: var(--texto-suave); }
.mis-pergunta { margin: 0 0 10px; font-size: 19px; font-weight: bold; }
.mis-alts { display: flex; gap: 10px; flex-wrap: wrap; }
.mis-alt.certa { background: linear-gradient(180deg, #4fdc8e, #1f9b57); color: #032612; }
.mis-alt.errada { background: linear-gradient(180deg, #f07a85, #b8323f); color: #2b0004; }
.mis-alt:disabled { opacity: 1; }
.mis-resultado { margin: 10px 0 0; font-size: 15px; line-height: 1.4; }
#btn-voltar-show { margin-top: 16px; }

/* ajuda Misericórdia: trancada até ganhar no intervalo */
.ajuda.especial { border-color: #ffb3a8; }
.ajuda.especial.trancada { opacity: .45; filter: grayscale(.7); }
.ajuda.especial.trancada::after { content: "🔒"; position: absolute; right: -4px; top: -6px; font-size: 14px; }
.ajuda.especial.ativa { opacity: 1; background: linear-gradient(180deg, #c0392b, #7d1f17); animation: pulsar-coracao 1.6s ease-in-out infinite; }
@keyframes pulsar-coracao { 50% { box-shadow: 0 0 18px rgba(255, 140, 140, .9); } }
.modal-misericordia .jesus-misericordioso { width: 150px; height: 150px; image-rendering: pixelated; filter: drop-shadow(0 0 24px rgba(255, 240, 200, .8)); animation: abrir .6s ease; }

/* missão, certificado */
.fim-missao { margin: 0 auto 18px; max-width: 480px; padding: 10px 14px; border-radius: 14px; background: rgba(59, 178, 115, .15); border: 1px solid rgba(124, 240, 174, .45); }
.fim-missao small { color: #9ef0c0; font-weight: bold; }
.fim-missao p { margin: 4px 0 0; font-size: 17px; }
.missao-ontem { max-width: 420px; padding: 10px 14px; border-radius: 14px; text-align: center; background: rgba(59, 178, 115, .18); border: 1px solid rgba(124, 240, 174, .5); }
.missao-ontem p { margin: 0 0 6px; }
.missao-texto { font-weight: bold; color: #c9ffe0; }
.campo { width: 100%; padding: 12px 14px; border-radius: 12px; border: 2px solid var(--ouro); background: #fff; color: #111; font-size: 18px; font-family: inherit; user-select: text; }
.cert-previa { width: 100%; max-width: 340px; border-radius: 10px; box-shadow: 0 8px 30px rgba(0,0,0,.5); }

@media (max-width: 760px) {
  .avisos { grid-template-columns: 1fr; }
  .mis-card { flex-direction: column; text-align: center; }
  .mis-card img { width: 84px; height: 84px; }
  .mis-alts { justify-content: center; }
  .ajuda.especial small { font-size: 8.5px; }
}

/* ---------------- Ranking (só com o site da paróquia) ---------------- */
.so-com-site { display: none !important; }
body.com-site .so-com-site { display: inline-block !important; }
.ranking-abas { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; text-align: left; }
.ranking-abas h3 { margin: 0 0 6px; color: var(--ouro-claro); font-size: 17px; text-align: center; }
.ranking-lista { list-style: none; margin: 0; padding: 0; }
.ranking-lista li { display: grid; grid-template-columns: 34px 1fr auto; gap: 6px; align-items: center; padding: 6px 8px; border-radius: 8px; font-size: 15px; }
.ranking-lista li:nth-child(odd) { background: rgba(255,255,255,.05); }
.ranking-lista li.eu { background: rgba(243, 215, 122, .25); outline: 1px solid var(--ouro); }
.ranking-lista b { letter-spacing: 1px; }
.ranking-lista em { font-style: normal; color: var(--ouro-claro); font-weight: bold; }
@media (max-width: 760px) { .ranking-abas { grid-template-columns: 1fr; } }

/* ---------------- Logo do show (arte da equipe) ---------------- */
.logo h1.com-imagem { margin: 0; font-size: 0; line-height: 0; filter: none; background: none; }
.logo-img {
  display: block; height: auto; margin: 2px auto 0;
  width: min(580px, 88vw, 56vh);
  filter: drop-shadow(0 12px 26px rgba(0, 0, 0, .5)) drop-shadow(0 0 34px rgba(243, 215, 122, .22));
  animation: logo-entra .9s cubic-bezier(.2, 1.3, .4, 1) both;
}
@keyframes logo-entra { from { opacity: 0; transform: scale(.82) translateY(-14px); } }
.marca-mini img { display: block; height: 46px; width: auto; filter: drop-shadow(0 3px 6px rgba(0,0,0,.45)); }
@media (max-height: 520px) and (min-width: 761px) { .marca-mini img { height: 34px; } }
@media (prefers-reduced-motion: reduce) { .logo-img { animation: none; } }

/* ---------------- Palco em pixel art (assets/palco) ----------------
   O fundo e a plateia são desenhos pequenos ampliados sem borrar. Uma camada escura por cima
   deixa as perguntas legíveis. Se a imagem não carregar, fica o palco antigo (gradientes). */
#palco {
  background:
    url(../assets/palco/fundo_palco.png) 50% 32% / cover no-repeat,
    linear-gradient(180deg, #0a1631 0%, #0B1E3F 45%, #08142c 100%);
  image-rendering: pixelated; image-rendering: crisp-edges;
  transition: filter .8s;
}
#palco::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(5, 12, 29, .30) 0%, rgba(5, 12, 29, .38) 45%, rgba(5, 12, 29, .62) 100%);
  transition: background .6s;
}
#palco .vitral, #palco .chao { display: none; }
#palco .holofote { opacity: .45; }
#palco .holofote.h2 { display: none; }
/* tela inicial e final: palco mais escuro, para a logo e os textos se destacarem */
body:not([data-tela]) #palco::after, body[data-tela="tela-inicio"] #palco::after, body[data-tela="tela-fim"] #palco::after {
  background: linear-gradient(180deg, rgba(5, 12, 29, .62), rgba(5, 12, 29, .72));
}
/* Pergunta de Ouro: o palco inteiro fica dourado */
body.ouro #palco { filter: sepia(.3) saturate(1.5) brightness(1.1); }
body.ouro #palco::after {
  background:
    radial-gradient(ellipse 45% 40% at 50% 32%, rgba(255, 214, 102, .38), transparent 70%),
    linear-gradient(180deg, rgba(70, 45, 0, .28) 0%, rgba(40, 25, 5, .35) 45%, rgba(5, 12, 29, .62) 100%);
}

/* plateia: a altura manda, a largura acompanha a tela (o canvas se ajusta sozinho) */
body.plateia-arte #plateia { height: clamp(90px, 21vh, 230px); filter: drop-shadow(0 -2px 0 rgba(5, 12, 29, .6)); }
#plateia { z-index: 1; }

/* celular em pé: o palco vertical */
@media (max-width: 760px) and (orientation: portrait) {
  #palco { background-image: url(../assets/palco/fundo_palco_vertical.png), linear-gradient(180deg, #0a1631, #08142c); background-position: 50% 0, 0 0; }
  body.plateia-arte #plateia { height: clamp(70px, 13vh, 130px); }
}
