:root{
  --fundo:#0c0e13; --superficie:#151922; --superficie2:#1d2230; --borda:#2a3040;
  --texto:#e9ecf3; --fraco:#8d96ab; --ambar:#f0a03c; --ambar-escuro:#c97d21;
  --verde:#5fd693; --sombra:0 12px 32px rgba(0,0,0,.45);
  color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--fundo);color:var(--texto);
  font:15px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased}
.envelope{max-width:1180px;margin:0 auto;padding:0 20px 80px}

/* ---------- topo ---------- */
header{border-bottom:1px solid var(--borda);background:rgba(12,14,19,.9);
  backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}
.topo{max-width:1180px;margin:0 auto;padding:14px 20px;display:flex;
  align-items:center;gap:12px}
.marca{display:flex;align-items:center;gap:11px;font-weight:700;letter-spacing:-.2px}
.marca svg{width:26px;height:26px;color:var(--ambar)}
.marca small{display:block;font-weight:400;font-size:11.5px;color:var(--fraco);
  letter-spacing:.3px;text-transform:uppercase}
.topo .direita{margin-left:auto;font-size:13px;color:var(--fraco)}

/* ---------- herói ---------- */
.heroi{padding:54px 0 34px;text-align:center}
.heroi h1{font-size:clamp(27px,4.6vw,40px);line-height:1.12;margin:0 0 14px;
  letter-spacing:-.8px;font-weight:800}
.heroi h1 em{font-style:normal;color:var(--ambar)}
.heroi p{color:var(--fraco);max-width:520px;margin:0 auto;font-size:16px}

.acoes{display:flex;gap:12px;justify-content:center;margin:32px 0 10px;flex-wrap:wrap}
.botao{border:0;border-radius:11px;padding:14px 26px;font:inherit;font-weight:650;
  cursor:pointer;display:inline-flex;align-items:center;gap:9px;transition:.15s;
  font-size:15px}
.botao svg{width:19px;height:19px}
.botao.principal{background:var(--ambar);color:#20160a}
.botao.principal:hover{background:#ffb45c;transform:translateY(-1px)}
.botao.neutro{background:var(--superficie2);color:var(--texto);
  border:1px solid var(--borda)}
.botao.neutro:hover{border-color:#3d4658;background:#242a3a}
.botao:disabled{opacity:.45;cursor:default;transform:none}
.botao.pequeno{padding:8px 15px;font-size:13.5px;border-radius:9px}

.aviso{margin:26px auto 0;max-width:540px;font-size:13.5px;color:var(--fraco);
  background:var(--superficie);border:1px solid var(--borda);border-radius:11px;
  padding:13px 17px;display:flex;gap:11px;align-items:flex-start;text-align:left}
.aviso svg{width:17px;height:17px;color:var(--verde);flex:none;margin-top:2px}

/* ---------- câmera ---------- */
.camera{max-width:400px;margin:26px auto 0;position:relative}
.camera video,.camera canvas{width:100%;border-radius:16px;display:block;
  background:#000;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--borda)}
.camera .alvo{position:absolute;inset:11%;border:2px dashed rgba(240,160,60,.5);
  border-radius:50%/42%;pointer-events:none}

/* ---------- progresso ---------- */
.progresso{max-width:430px;margin:34px auto;text-align:center}
.barra{height:5px;background:var(--superficie2);border-radius:99px;overflow:hidden;
  margin:16px 0 10px}
.barra i{display:block;height:100%;background:var(--ambar);width:0;
  transition:width .3s;border-radius:99px}
.progresso .rotulo{font-size:14px;color:var(--fraco)}

/* ---------- resultados ---------- */
.resumo{display:flex;align-items:center;gap:18px;padding:22px 0 6px;flex-wrap:wrap}
.resumo .selfie{width:62px;height:62px;border-radius:50%;object-fit:cover;
  border:2px solid var(--ambar)}
.resumo h2{margin:0;font-size:21px;letter-spacing:-.4px}
.resumo p{margin:2px 0 0;color:var(--fraco);font-size:14px}
.resumo .direita{margin-left:auto;display:flex;gap:9px;flex-wrap:wrap}

.evento{margin-top:30px}
.evento h3{font-size:15px;margin:0 0 3px;display:flex;align-items:center;
  gap:11px;flex-wrap:wrap}
.evento h3 .quanto{color:var(--ambar);font-weight:700}
.evento h3 .clube{color:var(--fraco);font-weight:400;font-size:12.5px;
  text-transform:uppercase;letter-spacing:.5px}
.evento .ferramentas{margin-left:auto;display:flex;gap:8px}

.grade{display:grid;gap:11px;margin-top:13px;
  grid-template-columns:repeat(auto-fill,minmax(185px,1fr))}
.cartao{position:relative;border-radius:11px;overflow:hidden;background:var(--superficie);
  cursor:pointer;border:2px solid transparent;transition:.12s}
/* Fundo visivel enquanto a imagem nao chega: sem ele a grade fica cheia de
   quadros vazios com um checkbox solto, e parece site quebrado. */
.cartao img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;
  background:linear-gradient(100deg,#1a1e28 30%,#232836 50%,#1a1e28 70%);
  background-size:220% 100%;animation:brilho 1.4s linear infinite}
.cartao img[data-pronta]{animation:none;background:#1a1e28}
@keyframes brilho{from{background-position:180% 0}to{background-position:-60% 0}}
.cartao:hover{transform:translateY(-2px);box-shadow:var(--sombra)}
.cartao.marcado{border-color:var(--ambar)}
.cartao .marca-sel{position:absolute;top:8px;left:8px;width:23px;height:23px;
  border-radius:7px;background:rgba(10,12,16,.72);border:1.5px solid rgba(255,255,255,.4);
  display:grid;place-items:center}
.cartao.marcado .marca-sel{background:var(--ambar);border-color:var(--ambar)}
.cartao .marca-sel svg{width:14px;height:14px;color:#20160a;opacity:0}
.cartao.marcado .marca-sel svg{opacity:1}
.cartao .nota{position:absolute;bottom:0;left:0;right:0;padding:16px 10px 7px;
  background:linear-gradient(transparent,rgba(8,10,14,.9));font-size:11.5px;
  color:#cfd6e4;display:flex;justify-content:space-between;gap:8px}
.cartao .nota b{color:var(--verde)}

.duvida{margin-top:40px;padding-top:22px;border-top:1px solid var(--borda)}
.cartao.duvidosa{cursor:default;border-color:#3a3f52}
.cartao.duvidosa:hover{transform:none}
.confirma{display:flex;gap:7px;padding:9px 10px 10px}
.confirma .botao{flex:1;justify-content:center}
.recado{background:#14361f;border:1px solid #2a6a44;color:#9ff0c4;padding:11px 15px;
  border-radius:10px;margin:14px 0;font-size:14px;font-weight:600}
.duvida h3{font-size:14px;color:var(--fraco);font-weight:600;margin:0 0 4px}
.duvida p{margin:0 0 12px;font-size:13px;color:var(--fraco)}

/* ---------- rodapé de seleção ---------- */
.rodape{position:fixed;left:0;right:0;bottom:0;background:rgba(21,25,34,.97);
  backdrop-filter:blur(12px);border-top:1px solid var(--borda);padding:13px 20px;
  display:flex;align-items:center;gap:14px;z-index:30;transform:translateY(110%);
  transition:transform .22s;padding-bottom:max(13px,env(safe-area-inset-bottom))}
.rodape.visivel{transform:none}
.rodape .conta{font-weight:650}
.rodape .direita{margin-left:auto;display:flex;gap:9px;align-items:center}
.rodape select{background:var(--superficie2);color:var(--texto);border:1px solid var(--borda);
  border-radius:9px;padding:9px 11px;font:inherit;font-size:13.5px}

.vazio{text-align:center;padding:46px 20px;color:var(--fraco)}
.vazio h2{color:var(--texto);font-size:20px;margin:0 0 8px}
.erro{background:#3a1a1a;border:1px solid #6b2b2b;color:#ffb3b3;padding:14px 17px;
  border-radius:11px;margin:22px 0;font-size:14px}
@media(max-width:600px){
  .envelope{padding:0 13px 130px}      /* espaco para o rodape nao cobrir foto */
  .heroi{padding:30px 0 20px}

  /* Uma coluna. Parece contraintuitivo em tela pequena, mas o que a pessoa
     precisa e SE ACHAR numa foto de grupo com 8 pessoas -- e com duas colunas
     cada foto fica com ~145px e ninguem se reconhece. */
  .grade{grid-template-columns:1fr;gap:10px}
  .cartao img{aspect-ratio:4/3}

  /* A selfie e a confirmacao de "e voce mesmo que estamos procurando".
     Num circulo de 62px ela virava um pontinho. */
  .resumo{gap:13px}
  .resumo .selfie{width:78px;height:78px}
  .resumo h2{font-size:19px}
  .resumo .direita{width:100%;margin-left:0}
  .resumo .direita .botao{flex:1}

  .evento h3{gap:8px}
  .evento .ferramentas{margin-left:0;width:100%}
  .evento .ferramentas .botao{width:100%}

  /* O rodape em uma linha so empurrava o botao Baixar para fora da tela --
     ou seja, no celular nao dava para baixar nada. Agora sao duas linhas,
     com o Baixar ocupando a largura toda. */
  .rodape{flex-wrap:wrap;gap:9px;padding:11px 13px}
  .rodape .conta{font-size:13.5px}
  .rodape .direita{width:100%;margin-left:0;gap:8px}
  .rodape select{flex:1;min-width:0}
  .rodape .direita .botao{white-space:nowrap}
  .rodape #btBaixar{flex:1.2}
}
