/* =====================================================================
   FAROL — canon CIn/UFPE
   #DB1E2F (PANTONE 1795 C) · #231F20 (419 C) · #FFFFFF · #E0E1E0 (664 C)
   Rigorosamente retangular. Zero gradiente, zero textura, zero glow.
   Profundidade = TROCA DE FUNDO INTEIRO (branco ↔ vermelho ↔ preto).
   ===================================================================== */
:root{
  --red:#DB1E2F; --red-dark:#AF0421; --red-2:#E84B59;
  --ink:#231F20; --white:#FFFFFF; --gray:#E0E1E0; --gray-soft:#F5F5F4;
  --muted:#6B6B6B; --sb:env(safe-area-inset-bottom,0px);
  --noite:#16233A; --azul:#2B5CE6; --turq:#17C4C4; --verde:#22C55E;
  --amarelo:#FFC53D; --laranja:#FF7A2F; --roxo:#7C4DFF; --creme:#FFF6E9;
  --st:env(safe-area-inset-top,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overscroll-behavior:none;background:var(--ink)}
body{font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--ink);
  -webkit-font-smoothing:antialiased;font-synthesis-weight:none}

#app{position:relative;width:100%;max-width:520px;margin:0 auto;height:100dvh;
  overflow:hidden;background:var(--white)}
@supports not (height:100dvh){#app{height:100vh}}
@media(min-width:560px){
  body{display:flex;align-items:center;justify-content:center}
  #app{height:min(920px,100dvh);border:1px solid rgba(255,255,255,.12)}
}

/* ---------- tipografia canônica ---------- */
.display{font-weight:900;letter-spacing:-.03em;line-height:.95;
  font-size:clamp(38px,11.5vw,60px);margin:0;text-transform:uppercase}
.headline{font-weight:800;letter-spacing:-.02em;line-height:1.05;
  font-size:clamp(24px,7vw,34px);margin:0}
.title{font-weight:700;letter-spacing:-.01em;line-height:1.15;
  font-size:clamp(18px,5.2vw,22px);margin:0}
.body{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
.label{font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:13px;letter-spacing:.06em}

/* masthead motif — a assinatura do sistema */
.mast{display:inline-flex;align-items:center;gap:10px;color:var(--red);
  font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.mast::after{content:"";display:block;height:2px;width:52px;background:var(--red)}
.mast.on-dark{color:var(--white)} .mast.on-dark::after{background:var(--white)}

/* ---------- telas ---------- */
.tela{position:absolute;inset:0;display:flex;flex-direction:column;
  padding:calc(16px + var(--st)) 18px calc(16px + var(--sb));
  background:var(--white);opacity:0;pointer-events:none;transition:opacity .25s}
.tela.on{opacity:1;pointer-events:auto}
.tela.dark{background:var(--ink);color:var(--white)}
.tela.red{background:var(--noite);color:var(--white)}

/* ---------- abertura: capa ---------- */
#t-intro{padding:0;overflow:hidden}
.capa-arte{flex:1 1 auto;min-height:0;position:relative;
  background:url('assets/cena-costa.webp') center 45%/cover no-repeat}
.capa-topo{position:absolute;top:calc(16px + var(--st));left:18px;right:18px;z-index:2}
.capa-txt{flex:0 0 auto;padding:22px 18px calc(18px + var(--sb));background:var(--noite);
  position:relative}
.capa-txt::after{content:'';position:absolute;left:0;right:0;top:-38px;height:38px;
  background:linear-gradient(transparent,var(--noite));pointer-events:none}
/* fio branco separando arte e texto */
.capa-txt::before{content:'';display:block;height:3px;background:var(--red);width:52px;
  margin-bottom:16px;border-radius:2px}

/* ---------- botões ---------- */
.btn{font-family:inherit;font-weight:700;font-size:13px;letter-spacing:.05em;
  text-transform:uppercase;background:var(--red);color:#fff;border:0;border-radius:2px;
  padding:17px 24px;width:100%;cursor:pointer;transition:background .15s,transform .07s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn:active{transform:translateY(1px)}
.btn:hover{background:var(--red-dark)}
.btn:disabled{opacity:.32;pointer-events:none}
.btn.ink{background:var(--ink)} .btn.ink:hover{background:#000}
.btn.out{background:transparent;border:1px solid var(--red);color:var(--red)}
.btn.out:hover{background:var(--red);color:#fff}
.btn.on-red{background:var(--white);color:var(--red)}
.btn.on-red:hover{background:#f2f2f2}
.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--gray)}

/* ---------- topo / progresso ---------- */
.topo{display:flex;align-items:center;gap:12px;flex:0 0 auto;padding-bottom:14px;
  border-bottom:1px solid var(--gray);margin-bottom:16px}
.marca{display:flex;align-items:center;gap:7px;font-weight:900;font-size:13px;
  letter-spacing:-.02em}
.marca svg{width:15px;height:15px;display:block}
.trilha{flex:1;display:flex;gap:3px}
.trilha i{flex:1;height:3px;background:var(--gray);transition:background .4s}
.trilha i.feito{background:var(--red)}
.trilha i.atual{background:var(--ink)}
.som{background:none;border:0;padding:6px;cursor:pointer;line-height:0;
  border-radius:2px;transition:background .15s}
.som svg{width:19px;height:19px;fill:none;stroke:var(--ink);stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.som svg path:first-child{fill:var(--ink);stroke-width:1}
.som.mudo svg{stroke:var(--gray)} .som.mudo svg path:first-child{fill:var(--gray)}
.som:active{background:var(--gray-soft)}

/* ---------- treinador de multi-toque ---------- */
.dica{display:flex;align-items:center;gap:11px;background:var(--noite);color:#fff;
  border-radius:14px;padding:13px 15px;margin-bottom:15px;font-size:13px;line-height:1.42}
.dica b{color:#fff}
.dica .demo{flex:0 0 auto;display:flex;gap:3px;align-items:flex-end}
.dica .demo i{display:block;width:7px;background:rgba(255,255,255,.28);border-radius:1px}
.dica .demo i:nth-child(1){height:6px}  .dica .demo i:nth-child(2){height:10px}
.dica .demo i:nth-child(3){height:14px} .dica .demo i:nth-child(4){height:18px}
.dica .demo i:nth-child(5){height:22px}
.dica .demo i.ac{background:var(--red)}

/* nudge quando ninguém passou de 1 */
.nudge{position:absolute;left:18px;right:18px;bottom:calc(80px + var(--sb));
  background:var(--ink);color:#fff;border-radius:2px;padding:14px 16px;z-index:70;
  font-size:13px;line-height:1.45;opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(16px);transition:opacity .28s,transform .34s,visibility .28s}
.nudge.on{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.nudge b{color:#fff}
.nudge .x{position:absolute;top:8px;right:10px;font-size:15px;opacity:.5;cursor:pointer;
  line-height:1;padding:4px}
/* pulso de atenção no primeiro chip */
@keyframes chama{0%,100%{box-shadow:0 0 0 0 rgba(219,30,47,0)}
  50%{box-shadow:0 0 0 4px rgba(219,30,47,.35)}}
.it.chama{animation:chama 1.5s ease-in-out 3}

.corpo{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px}
.corpo::-webkit-scrollbar{display:none}
.rodape{flex:0 0 auto;padding-top:12px}

/* ---------- inventário: sem caixa, com carisma ---------- */
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:4px}
.it{position:relative;background:none;border:0;border-radius:14px;
  padding:12px 4px 10px;cursor:pointer;text-align:center;font-family:inherit;color:var(--ink);
  min-height:92px;transition:transform .12s cubic-bezier(.2,1.6,.4,1),background .18s;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:7px;
  -webkit-user-select:none;user-select:none}
.it:active{transform:scale(.9)}
/* disco do ícone: é ele que ganha cor, não a caixa */
.it .disco{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;background:#EFEFEE;position:relative;flex:0 0 auto;
  transition:background .2s,transform .2s cubic-bezier(.2,1.7,.4,1),box-shadow .2s}
.it svg{width:25px;height:25px;fill:#B9B9B7;transition:fill .2s,transform .2s}
.it .nm{font-size:13px;line-height:1.2;color:var(--muted);font-weight:600;
  letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden}
/* pontinhos de nível abaixo do nome */
.it .pips{display:flex;gap:3px;height:5px}
.it .pips i{width:5px;height:5px;border-radius:50%;background:#DEDEDC;transition:background .2s}
.it[data-n="1"] .disco{background:#DCE7FF} .it[data-n="1"] svg{fill:#2B5CE6}
.it[data-n="2"] .disco{background:#CFF3F3} .it[data-n="2"] svg{fill:#0E9C9C}
.it[data-n="3"] .disco{background:#FFE7C2} .it[data-n="3"] svg{fill:#E07C00}
.it[data-n="4"] .disco{background:var(--red);box-shadow:0 4px 0 var(--red-dark);
  transform:translateY(-2px)}
.it[data-n="4"] svg{fill:#fff;transform:scale(1.1)}
.it[data-n="4"] .nm{color:var(--ink);font-weight:700}
.it[data-n="1"] .pips i:nth-child(-n+1),
.it[data-n="2"] .pips i:nth-child(-n+2),
.it[data-n="3"] .pips i:nth-child(-n+3),
.it[data-n="4"] .pips i{background:var(--red)}
/* liga/desliga */
.it.tog .pips{display:none}
.it.tog[data-n="1"] .disco{background:var(--verde);box-shadow:0 4px 0 #14803B;
  transform:translateY(-2px)}
.it.tog[data-n="1"] svg{fill:#fff}
.it.tog[data-n="1"] .nm{color:var(--ink);font-weight:700}
.it.tog[data-n="1"] .disco::after{content:'✓';position:absolute;right:-3px;top:-3px;
  width:18px;height:18px;border-radius:50%;background:var(--ink);color:#fff;
  font-size:13px;display:flex;align-items:center;justify-content:center;font-weight:700}

/* explicação por toque longo */
.expl{position:fixed;left:14px;right:14px;bottom:calc(88px + var(--sb));z-index:120;
  background:var(--ink);color:#fff;border-radius:14px;padding:16px 18px;
  box-shadow:0 10px 40px rgba(0,0,0,.35);opacity:0;visibility:hidden;
  transform:translateY(14px) scale(.97);transition:opacity .2s,transform .26s,visibility .2s}
.expl.on{opacity:1;visibility:visible;transform:none}
.expl h4{margin:0 0 6px;font-size:15px;font-weight:800;letter-spacing:-.01em}
.expl p{margin:0;font-size:13px;line-height:1.5;color:rgba(255,255,255,.8)}
.expl .dica-toque{margin-top:10px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.45)}

.leg{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 16px;font-size:13px;color:var(--muted);
  align-items:center;font-family:'IBM Plex Mono',monospace;letter-spacing:.02em}
.leg b{color:var(--ink)}

/* contador ao vivo */
.medidor{position:sticky;top:0;z-index:6;background:var(--white);padding:0 0 12px;
  margin-bottom:12px;border-bottom:1px solid var(--gray);display:flex;align-items:baseline;gap:10px}
.medidor .n{font-weight:900;font-size:34px;line-height:1;letter-spacing:-.04em;color:var(--red);
  font-variant-numeric:tabular-nums}
.medidor .d{font-size:13px;color:var(--muted);line-height:1.25;font-weight:600}

/* chips */
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}
.ch{border:0;background:#EFEFEE;border-radius:12px;padding:13px 18px;
  font-family:inherit;font-size:14.5px;font-weight:600;color:var(--muted);cursor:pointer;
  transition:all .13s}
.ch:active{transform:scale(.95)}
.ch.on{background:var(--red);color:#fff;box-shadow:0 3px 0 var(--red-dark);transform:translateY(-1px)}
.rot{font-size:15px;color:var(--ink);margin:0 0 9px;font-weight:700;letter-spacing:-.01em}

/* ---------- INTERSTÍCIO DRAMÁTICO ---------- */
#flash{position:fixed;inset:0;z-index:200;display:none;overflow:hidden}
#flash.on{display:block}
#flash canvas{position:absolute;inset:0;width:100%;height:100%}
.fl-conteudo{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:32px;color:#fff;z-index:3}
.fl-num{font-weight:900;font-size:clamp(90px,32vw,190px);line-height:.8;letter-spacing:-.06em;
  font-variant-numeric:tabular-nums;opacity:0}
.fl-txt{font-weight:800;font-size:clamp(19px,5.6vw,26px);line-height:1.15;letter-spacing:-.02em;
  max-width:15ch;opacity:0;margin-top:14px}
.fl-sub{font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;
  opacity:0;margin-top:16px}
.fl-toque{position:absolute;bottom:calc(30px + var(--sb));left:0;right:0;text-align:center;
  font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.5);
  opacity:0;z-index:3}
/* cortinas geométricas */
.cortina{position:absolute;inset:0;background:var(--ink);transform:scaleY(0);
  transform-origin:top;z-index:2}

/* ---------- tabuleiro ---------- */
#t-mapa{padding:0;background:var(--ink)}
.mw{position:relative;flex:1;overflow:hidden}
#board{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  height:100%;aspect-ratio:9/16}
#board .bg{position:absolute;inset:0;background:url('assets/cena-mapa.webp') center/contain no-repeat}
.estacoes{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  height:96%;aspect-ratio:941/1672;z-index:3}
.est{position:absolute;width:10%;aspect-ratio:1;transform:translate(-50%,-50%) scale(0);
  background:var(--red);border-radius:0;transition:transform .45s cubic-bezier(.2,1.7,.4,1)}
.est.on{transform:translate(-50%,-50%) scale(1) rotate(45deg)}
.est::after{content:'';position:absolute;inset:-40%;border:1px solid var(--red);opacity:0}
.est.on::after{animation:pulseq 2.6s ease-out infinite}
@keyframes pulseq{0%{transform:scale(.7);opacity:.9}100%{transform:scale(2.4);opacity:0}}
.mtxt{position:absolute;left:0;right:0;bottom:0;padding:22px 18px calc(22px + var(--sb));
  background:linear-gradient(transparent,var(--ink) 34%);z-index:5;color:#fff}

/* ---------- final ---------- */
#t-fim{align-items:center;justify-content:center;text-align:center}
#fx{position:absolute;inset:0;pointer-events:none;z-index:90}
.oculto{display:none!important}

/* ================= PONTOS ================= */
.placar{display:flex;align-items:center;gap:7px;font-weight:900;font-size:30px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:#16233A;line-height:1;padding:2px 4px}
.placar svg{width:26px;height:26px;fill:#FFC53D;filter:drop-shadow(0 2px 0 rgba(224,168,0,.55))}
.ganho{position:absolute;left:50%;bottom:104px;transform:translate(-50%,0);z-index:150;font-size:26px;font-weight:900;letter-spacing:-.02em;text-shadow:0 3px 0 rgba(0,0,0,.18);
  background:var(--laranja);color:#fff;
  padding:11px 22px;border-radius:99px;box-shadow:0 6px 0 #C24E12;pointer-events:none;
  white-space:nowrap}

/* ================= CONVITE PARA APROFUNDAR ================= */
.convite{position:absolute;inset:0;z-index:140;display:flex;align-items:center;
  justify-content:center;padding:22px;background:rgba(10,14,22,.82);
  backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.convite.on{opacity:1;visibility:visible}
.cv-cartao{background:var(--creme);border-radius:22px;padding:26px 22px 20px;
  width:100%;max-width:340px;text-align:center;position:relative;
  box-shadow:0 8px 0 rgba(0,0,0,.22);transform:translateY(18px) scale(.96);
  transition:transform .38s cubic-bezier(.2,1.5,.4,1)}
.convite.on .cv-cartao{transform:none}
.cv-selo{position:absolute;top:-16px;left:50%;transform:translateX(-50%);
  background:var(--laranja);color:#fff;font-weight:900;font-size:15px;
  padding:7px 17px;border-radius:99px;box-shadow:0 4px 0 #C24E12}
.cv-cartao h3{margin:10px 0 8px;font-size:20px;font-weight:900;letter-spacing:-.02em;
  color:var(--ink);line-height:1.15}
.cv-cartao p{margin:0 0 18px;font-size:13.5px;line-height:1.45;color:#6B6B6B}
.cv-bts{display:flex;flex-direction:column;gap:8px}
.cv-bts .btn{border-radius:12px;font-size:13.5px;padding:15px}
.cv-pular{background:transparent;color:#6B6B6B;box-shadow:none}
.cv-pular:hover{background:rgba(0,0,0,.05)}
.cv-nota{margin-top:12px;font-size:13px;color:#9A9A98;line-height:1.35}

/* ================= PERGUNTAS ABERTAS ================= */
textarea.aberta{width:100%;background:#fff;border:2px solid var(--gray);
  border-radius:14px;padding:13px 14px;font-family:inherit;font-size:15px;
  line-height:1.45;color:var(--ink);resize:vertical;min-height:52px;
  transition:border-color .18s}
textarea.aberta:focus{outline:0;border-color:var(--red)}
textarea.aberta::placeholder{color:#B5B5B3}

/* ============ ÍCONES DE MARCA (cor original) ============ */
/* fill:none matava os logos monocromaticos (ChatGPT, Grok, Zed...), que nao
   trazem cor no proprio path e herdavam o none. currentColor deixa cada um
   escolher: quem tem fill proprio mantem a cor da marca, quem nao tem cai
   no azul-noite e ao menos aparece. */
.it .disco svg.marca-real{width:28px;height:28px;fill:currentColor;color:#16233A}
.it .disco svg.marca-real *{transition:none}
/* apagado quando nível 0: dessatura em vez de recolorir */
.it[data-n="0"] .disco svg.marca-real{filter:grayscale(1) opacity(.32)}
.it[data-n="1"] .disco svg.marca-real{filter:grayscale(.55) opacity(.72)}
.it[data-n="2"] .disco svg.marca-real{filter:grayscale(.25) opacity(.88)}
.it[data-n="3"] .disco svg.marca-real,
.it[data-n="4"] .disco svg.marca-real{filter:none;opacity:1}
.it.tog[data-n="0"] .disco svg.marca-real{filter:grayscale(1) opacity(.32)}
.it.tog[data-n="1"] .disco svg.marca-real{filter:none;opacity:1}

/* ============ PROGRESSÃO DE COR ATÉ O VERDE + preenchimento parcial ============ */
.it .disco{overflow:hidden}
.it .disco::before{content:'';position:absolute;left:0;bottom:0;width:100%;height:0;
  transition:height .3s cubic-bezier(.2,.9,.25,1),background .25s;z-index:0}
.it .disco svg{position:relative;z-index:1}
.it[data-n="1"] .disco::before{height:25%;background:#DCE7FF}
.it[data-n="2"] .disco::before{height:50%;background:#CFF3F3}
.it[data-n="3"] .disco::before{height:75%;background:#FFE7C2}
.it[data-n="4"] .disco::before{height:100%;background:#C9F5D8}
.it[data-n="1"] .disco{background:#F1F5FF} .it[data-n="2"] .disco{background:#EAFAFA}
.it[data-n="3"] .disco{background:#FFF6E8}
.it[data-n="4"] .disco{background:#DFFBE9;box-shadow:0 4px 0 #16A34A;transform:translateY(-2px)}
.it[data-n="4"] .nm{color:#15803D;font-weight:800}
/* pontinhos com a mesma progressão */
.it[data-n="1"] .pips i:nth-child(-n+1){background:#2B5CE6}
.it[data-n="2"] .pips i:nth-child(-n+2){background:#0E9C9C}
.it[data-n="3"] .pips i:nth-child(-n+3){background:#E07C00}
.it[data-n="4"] .pips i{background:#16A34A}
.it.tog[data-n="1"] .disco{background:#DFFBE9;box-shadow:0 4px 0 #16A34A}
.it.tog[data-n="1"] .disco::before{height:0}
.it.tog[data-n="1"] .disco::after{content:'✓';position:absolute;right:-2px;top:-2px;
  width:18px;height:18px;border-radius:50%;background:#16A34A;color:#fff;font-size:13px;
  display:flex;align-items:center;justify-content:center;font-weight:800;z-index:2}

/* ============ APROFUNDAMENTO INLINE ============ */
.mais{margin:22px 0 6px;border-radius:16px;background:linear-gradient(160deg,#1B2A44,#16233A);
  overflow:hidden;box-shadow:0 6px 0 rgba(0,0,0,.18)}
.mais-cab{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;
  padding:15px 16px;cursor:pointer;text-align:left;font-family:inherit;color:#fff}
.mais-ico{flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--laranja);
  color:#fff;font-size:19px;font-weight:700;display:flex;align-items:center;
  justify-content:center;line-height:1;transition:transform .3s cubic-bezier(.2,1.6,.4,1)}
.mais.aberto .mais-ico{transform:rotate(45deg)}
.mais-txt{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.mais-txt b{font-size:14.5px;font-weight:800;letter-spacing:-.01em}
.mais-txt span{font-size:13px;color:rgba(255,255,255,.55);line-height:1.3}
.mais-pts{flex:0 0 auto;background:rgba(255,197,61,.16);color:var(--amarelo);
  font-weight:800;font-size:13px;padding:5px 10px;border-radius:99px}
.mais-corpo{max-height:0;overflow:hidden;transition:max-height .42s cubic-bezier(.2,.9,.25,1)}
.mais.aberto .mais-corpo{max-height:1400px}
.mais-p{padding:0 16px 16px}
.mais-p .rot{color:#fff;font-size:14px;margin-bottom:9px}
.mais-p .ch{background:rgba(255,255,255,.1);color:rgba(255,255,255,.8)}
.mais-p .ch.on{background:var(--amarelo);color:#231F20;box-shadow:0 3px 0 #C99A16}
.mais-p textarea.aberta{background:rgba(0,0,0,.25);border-color:rgba(255,255,255,.14);
  color:#fff}
.mais-p textarea.aberta::placeholder{color:rgba(255,255,255,.3)}
.mais-p textarea.aberta:focus{border-color:var(--amarelo)}

/* ---------- identificação obrigatória (Categoria 2) ---------- */
.ident{margin-top:30px;padding:20px 18px 18px;border-radius:18px;
  background:linear-gradient(165deg,#FFF9EC,#FFF3DC);
  border:2px solid #FFC53D;box-shadow:0 4px 0 rgba(224,168,0,.35)}
.ident-tit{margin:0 0 6px;font-size:17px;font-weight:900;letter-spacing:-.015em;
  line-height:1.25;color:#4A3500}
.ident-sub{margin:0 0 18px;font-size:13px;line-height:1.45;color:#7A5E14}
.ident-c{display:block;margin-bottom:15px}
.ident-r{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:800;
  margin-bottom:6px;color:#3D2C00}
.ident-r i{font-style:normal;font-size:13px;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;padding:3px 7px;border-radius:99px}
.ident-r .obr{background:#DB1E2F;color:#fff}
.ident-r .opc{background:rgba(0,0,0,.08);color:#7A5E14}
.ident-i{width:100%;box-sizing:border-box;border:2px solid #E8D9AE;border-radius:12px;
  padding:14px;font:600 16px/1.3 inherit;background:#fff;color:#231F20;
  transition:border-color .18s,box-shadow .18s}
.ident-i::placeholder{color:#B0A588;font-weight:500}
.ident-i:focus{outline:none;border-color:#2B5CE6;box-shadow:0 0 0 4px rgba(43,92,230,.14)}
.ident-i.ok{border-color:#16A34A;background:#F6FFF9}
.ident-i.ok:focus{box-shadow:0 0 0 4px rgba(22,163,74,.16)}
.ident-i.ruim{border-color:#DB1E2F;background:#FFF7F7}
.ident-n{display:block;margin-top:5px;font-size:13px;color:#8A6E24}
.ident-erro{margin:2px 0 0;min-height:18px;font-size:13px;font-weight:800;color:#DB1E2F}

/* ---------- palpite inicial ---------- */
.palps{display:flex;flex-direction:column;gap:9px}
.palp{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;
  background:#fff;border:2px solid #E6E4E0;border-radius:16px;padding:14px 15px;
  cursor:pointer;font-family:inherit;color:inherit;
  transition:border-color .16s,transform .12s cubic-bezier(.2,.9,.25,1),box-shadow .16s}
.palp:active{transform:translateY(3px) scale(.985)}
.palp.on{border-color:#DB1E2F;box-shadow:0 4px 0 #9E1220;transform:translateY(-2px);
  background:linear-gradient(165deg,#FFF8F8,#fff)}
.palp-ico{font-size:26px;line-height:1;flex:0 0 auto;margin-top:1px}
.palp-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.palp-txt b{font-size:15px;font-weight:900;letter-spacing:-.01em}
.palp-txt span{font-size:13px;line-height:1.4;color:#6B7280}
.palp.on .palp-txt b{color:#DB1E2F}
.palp-nsei{border-style:dashed}

/* ---------- arte de cena por categoria ---------- */
#cenafundo{position:absolute;inset:0;z-index:0;pointer-events:none;
  background-size:cover;background-position:center 42%;opacity:.30;
  transition:background-image .5s}
#cenafundo::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(251,249,246,.80) 0%,rgba(251,249,246,.94) 26%,
    rgba(251,249,246,.985) 55%,#FBF9F6 100%)}
/* NAO colocar position:relative aqui. .tela ja e position:absolute com
   inset:0, o que a mantem do tamanho exato do app e faz o #corpo rolar
   dentro dela. Trocar para relative faz a tela crescer com o conteudo,
   o #corpo perde o limite de rolagem e o botao Continuar sai da area
   visivel, cortado pelo overflow:hidden do #app. */
#t-q .topo,#t-q #corpo,#t-q .rodape{position:relative;z-index:1}

/* ---------- foto de fundo do interstício ---------- */
#flfoto{position:absolute;inset:0;z-index:0;background-size:cover;
  background-position:center;opacity:.55}
#flfoto::after{content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 50% 46%,rgba(8,12,22,.94) 0%,
    rgba(8,12,22,.86) 30%,rgba(8,12,22,.55) 62%,rgba(8,12,22,.30) 100%)}
#flash>*:not(#flfoto){position:relative;z-index:1}

/* ---------- carta do arquétipo ---------- */
.cartaArq{position:relative;margin:0 0 14px;border-radius:16px;overflow:hidden;
  border:1px solid rgba(255,255,255,.20);background:#0E1830;
  box-shadow:0 14px 40px rgba(0,0,0,.45)}
.cartaArq img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.cartaArq.semArte img{display:none}
.cartaArq.semArte{aspect-ratio:auto}
.cartaArq-tx{position:absolute;left:0;right:0;bottom:0;padding:32px 16px 15px;text-align:left;
  background:linear-gradient(180deg,transparent,rgba(6,10,20,.90) 55%,rgba(6,10,20,.97))}
.cartaArq.semArte .cartaArq-tx{position:static;background:none;padding:16px}
.cartaArq-tx .mono{display:block;font-size:13px;letter-spacing:.16em;
  color:rgba(255,255,255,.55);margin-bottom:3px}
.cartaArq-tx b{display:block;font-size:24px;font-weight:900;color:#fff;
  letter-spacing:-.02em;line-height:1.1}

/* ---------- icones de conceito (arte propria) e selo de ausencia ---------- */
.it .disco img.ico-conceito{width:34px;height:34px;object-fit:contain;display:block}
.ico-falta{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;background:#DDE3EE;color:#5A6478;font:900 14px/1 Inter,system-ui,sans-serif;letter-spacing:-.02em}
.it[data-n="0"] .ico-falta{opacity:.45}
