@font-face{font-family:Excon;font-weight:900;src:url(../../assets/fontes/Excon-Black.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Nunito Sans";font-weight:700 800;src:url(../../assets/fontes/NunitoSans-latin.woff2) format("woff2");font-display:swap}

:root{
  --casca-1:#FF9128; --casca-2:#EA7612;
  --noite-1:#140D36; --noite-2:#22195C; --noite-3:#2E2378;
  --lua:#FFF3D6; --lua-borda:#F3D9A2; --branco:#FFFCF0;
  --lanterna:#FF8A1F; --lanterna-fundo:#B9530C;
  --tinta:#2A1205; --tinta-noite:#F2EEFF; --tinta-noite-suave:#BDB4E6;
  --milo:#02ACED; --milo-royal:#202AB3; --milo-degrau:#121A7A;
  --nami:#FABD05; --nami-fundo:#B8860B;
  --quadro:rgba(255,252,240,.95);
  --excon:Excon,"Trebuchet MS",sans-serif;
  --texto:"Nunito Sans","Segoe UI",system-ui,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --mola:cubic-bezier(.34,1.56,.64,1);
}

*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{
  font-family:var(--texto);font-weight:800;color:var(--tinta);
  overflow:hidden;overscroll-behavior:none;touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;
  -webkit-font-smoothing:antialiased;
  background:
    url(../../assets/jogos/morcegos.svg) 0 0/300px 260px;
  background-color:var(--casca-1);
}
img{display:block;max-width:100%;-webkit-user-drag:none}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:4px solid var(--nami);outline-offset:4px;border-radius:12px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.so-leitor{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* título de tela: Excon com contorno e relevo (gesto da ID) */
.doce{font-family:var(--excon);font-weight:900;line-height:1;letter-spacing:-.01em;position:relative;display:inline-block;color:var(--lua);z-index:0}
.doce::before{content:attr(data-t);position:absolute;inset:0 0 auto 0;z-index:-1;color:var(--milo-royal);
  -webkit-text-stroke:var(--w,.16em) var(--milo-royal);
  text-shadow:0 .05em 0 var(--milo-royal),0 .09em 0 var(--lanterna-fundo),0 .13em 0 var(--lanterna-fundo),0 .2em .3em rgba(9,5,34,.45)}

/* ---------- casca do jogo ---------- */
.jogo{
  height:100vh;height:100dvh;max-width:1180px;margin:0 auto;
  display:grid;grid-template-areas:"hud" "titulo" "cena" "palco" "rodape";
  grid-template-rows:auto auto auto minmax(0,1fr) auto;
  padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
  row-gap:clamp(6px,1.4dvh,14px);
}
.hud{grid-area:hud;display:flex;align-items:center;justify-content:space-between;gap:10px}
.hud-btn{width:64px;height:64px;flex:none;border:0;border-radius:18px;display:grid;place-items:center;
  background:var(--noite-3);color:var(--lua);
  box-shadow:0 5px 0 var(--noite-1),0 10px 18px rgba(9,5,34,.25),inset 0 0 0 2px rgba(250,189,5,.3);text-decoration:none;
  transition:transform .15s var(--ease),box-shadow .15s var(--ease)}
.hud-btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--noite-1)}
.hud-btn svg{width:30px;height:30px}
.estrelas{display:flex;gap:4px;align-items:center;padding:9px 14px;border-radius:18px;
  background:var(--noite-3);box-shadow:0 5px 0 var(--noite-1),inset 0 0 0 2px rgba(250,189,5,.3)}
.estrelas svg{width:clamp(26px,7vw,36px);height:clamp(26px,7vw,36px);transition:transform .3s var(--mola)}
.estrelas svg.nova{animation:estrela-entra .6s var(--mola)}
@keyframes estrela-entra{0%{transform:scale(.3) rotate(-40deg)}60%{transform:scale(1.35)}100%{transform:none}}

.titulo{grid-area:titulo;margin:0;text-align:center;font-size:clamp(26px,7.4vw,42px);--w:.2em;padding:4px 0 6px;text-wrap:balance}

/* cena: personagem + balão (todo texto pequeno mora no quadro branco) */
.cena{grid-area:cena;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:clamp(8px,2vw,18px);min-height:0}
.personagem{height:clamp(104px,17dvh,250px);width:auto;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 10px 12px rgba(42,18,5,.28));transform-origin:50% 100%}
.personagem.pula{animation:personagem-pula .7s var(--mola)}
.personagem.inclina{animation:personagem-inclina .7s var(--ease)}
@keyframes personagem-pula{0%{transform:none}35%{transform:translateY(-16%) scale(1.06)}65%{transform:translateY(2%) scale(.98,1.02)}100%{transform:none}}
@keyframes personagem-inclina{0%,100%{transform:none}30%{transform:rotate(-6deg)}65%{transform:rotate(4deg)}}
.balao{position:relative;background:var(--quadro);border-radius:22px;padding:14px 18px;
  box-shadow:0 18px 44px rgba(122,46,0,.18);font-size:clamp(18px,2.3dvh + .6vw,26px);line-height:1.3;min-height:3.2em;display:flex;align-items:center}
.balao::before{content:"";position:absolute;left:-14px;top:50%;margin-top:-14px;border:14px solid transparent;border-left:0;border-right-color:var(--quadro)}
.balao p{margin:0;text-wrap:balance}
.balao b{color:var(--milo-royal);font-weight:800}
.balao .fala-titulo{display:block;font-family:var(--excon);font-weight:900;color:var(--milo-royal);font-size:1.15em;line-height:1.05}
.balao[data-modo="acerto"] .fala-titulo{color:#1E7F2C}
.balao[data-modo]{animation:balao-troca .35s var(--ease)}
@keyframes balao-troca{from{transform:scale(.96);opacity:.6}to{transform:none;opacity:1}}

.palco{grid-area:palco;position:relative;min-height:0;min-width:0;display:grid;place-items:center}
.palco.travado{pointer-events:none}
.rodape{grid-area:rodape;min-height:0}

/* ---------- cartas ---------- */
.grade{display:grid;grid-template-columns:repeat(var(--colunas,2),var(--carta-l,120px));gap:var(--vao,14px);justify-content:center;align-content:center}
.carta{position:relative;width:var(--carta-l,120px);height:var(--carta-a,150px);padding:0;border:3px solid var(--noite-3);border-radius:22px;
  background:#FFFFFF;
  box-shadow:0 6px 0 var(--noite-3),0 14px 24px rgba(42,18,5,.2);
  display:grid;place-items:center;rotate:var(--giro,0deg);
  transition:translate .14s var(--ease),box-shadow .14s var(--ease)}
/* A arte mora numa área recortada: o asset é quadrado com margem própria e nunca passa da moldura. */
.carta-arte{position:absolute;inset:4%;overflow:hidden;border-radius:16px;pointer-events:none}
.carta-arte img,.frente img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;pointer-events:none}
.carta:active{translate:0 4px;box-shadow:0 2px 0 var(--noite-3),0 6px 12px rgba(42,18,5,.2)}
.carta.entra{animation:carta-entra .45s var(--mola) both;animation-delay:calc(var(--ordem,0) * 70ms)}
@keyframes carta-entra{from{transform:scale(.6) translateY(24px);opacity:0}to{transform:none;opacity:1}}
.carta.balanca{animation:carta-balanca .5s var(--ease)}
@keyframes carta-balanca{0%,100%{transform:none}20%{transform:rotate(-6deg)}45%{transform:rotate(5deg)}70%{transform:rotate(-3deg)}}
.carta.certa{z-index:2;border-color:var(--nami-fundo);
  box-shadow:0 6px 0 var(--nami-fundo),0 0 0 6px var(--nami),0 0 44px 14px rgba(250,189,5,.75);animation:carta-pula .7s var(--mola)}
@keyframes carta-pula{0%{transform:none}35%{transform:translateY(-22px) scale(1.1)}70%{transform:translateY(3px) scale(.98)}100%{transform:scale(1.04)}}
.carta.certa::after{content:"";position:absolute;inset:-30%;pointer-events:none;border-radius:50%;
  background:
    radial-gradient(circle at 50% 4%,#FFF6C8 0 5px,transparent 6px),radial-gradient(circle at 96% 50%,#FFF6C8 0 4px,transparent 5px),
    radial-gradient(circle at 50% 96%,#FFF6C8 0 5px,transparent 6px),radial-gradient(circle at 4% 50%,#FFF6C8 0 4px,transparent 5px),
    radial-gradient(circle at 18% 16%,var(--nami) 0 6px,transparent 7px),radial-gradient(circle at 84% 16%,var(--milo) 0 5px,transparent 6px),
    radial-gradient(circle at 84% 84%,var(--nami) 0 6px,transparent 7px),radial-gradient(circle at 16% 84%,#FFFFFF 0 5px,transparent 6px);
  animation:faisca .8s var(--ease) forwards}
@keyframes faisca{from{transform:scale(.4);opacity:1}to{transform:scale(1.25);opacity:0}}
.carta.dica{border-color:var(--nami-fundo);box-shadow:0 6px 0 var(--nami-fundo),0 0 0 5px var(--nami),0 0 34px 10px rgba(250,189,5,.7);animation:carta-brilha 1.1s ease-in-out infinite}
@keyframes carta-brilha{0%,100%{scale:1}50%{scale:1.06;box-shadow:0 6px 0 var(--nami-fundo),0 0 0 8px var(--nami),0 0 54px 20px rgba(250,189,5,.85)}}

/* ---------- paisagem: cena à esquerda, cartas à direita ---------- */
@media (orientation:landscape) and (min-aspect-ratio:5/4){
  .jogo{grid-template-areas:"hud hud" "titulo palco" "cena palco" "rodape palco";
    grid-template-columns:minmax(250px,34%) 1fr;grid-template-rows:auto auto minmax(0,1fr) auto;column-gap:clamp(12px,3vw,40px)}
  .titulo{font-size:clamp(24px,4.2dvh + 1vw,40px);align-self:end}
  .cena{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);justify-items:center;align-content:center}
  .balao{width:100%;font-size:clamp(17px,2.6dvh + .5vw,25px)}
  .balao::before{left:50%;top:-14px;margin:0 0 0 -14px;border:14px solid transparent;border-top:0;border-bottom-color:var(--quadro)}
  .personagem{height:clamp(84px,30dvh,260px)}
}
@media (orientation:landscape) and (max-height:520px){
  .titulo{display:none}
  .jogo{grid-template-areas:"hud hud" "cena palco" "cena palco" "rodape palco"}
  .hud-btn{width:64px;height:64px}
}

/* ---------- parabéns: noite de veludo ---------- */
.parabens{position:fixed;inset:0;z-index:20;display:grid;place-items:center;overflow:auto;color:var(--tinta-noite);
  padding:max(16px,env(safe-area-inset-top)) 18px max(16px,env(safe-area-inset-bottom));
  background:var(--noite-1);
  animation:noite-entra .5s var(--ease)}
.parabens::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.9;background-size:190px 210px;background-image:
  radial-gradient(1.6px 1.6px at 24px 30px,#FFF3D6 60%,transparent 62%),radial-gradient(1.2px 1.2px at 120px 64px,#F2EEFF 60%,transparent 62%),
  radial-gradient(2px 2px at 160px 150px,#FFE7A8 60%,transparent 62%),radial-gradient(1.1px 1.1px at 70px 180px,#BDB4E6 60%,transparent 62%)}
@keyframes noite-entra{from{opacity:0}to{opacity:1}}
.confete{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.brilhos{position:absolute;inset:0;pointer-events:none}
.brilhos svg{position:absolute;width:var(--t,18px);height:var(--t,18px);animation:piscar 2.6s ease-in-out infinite alternate;animation-delay:var(--d,0s)}
@keyframes piscar{from{opacity:.25;transform:scale(.7) rotate(-10deg)}to{opacity:1;transform:scale(1.1) rotate(8deg)}}
.parabens-conteudo{position:relative;z-index:2;width:min(100%,460px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(8px,1.6dvh,16px)}
.palco-lua{position:relative;width:clamp(190px,30dvh,290px);aspect-ratio:1.25;margin-bottom:4px}
.palco-lua .lua{position:absolute;left:12%;right:12%;top:0;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 36% 30%,#FFFCF0 0 34%,var(--lua) 62%,var(--lua-borda));
  box-shadow:0 0 0 10px rgba(255,239,200,.06),0 0 50px 14px rgba(255,214,140,.32),0 0 150px 50px rgba(255,180,90,.14)}
.palco-lua img{position:absolute;bottom:-4%;width:56%;filter:drop-shadow(0 14px 16px rgba(9,5,34,.5))}
.palco-lua .p-milo{left:-4%;animation:comemora 1.4s var(--ease) infinite alternate}
.palco-lua .p-nami{right:-4%;animation:comemora 1.4s var(--ease) .35s infinite alternate}
@keyframes comemora{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-8%) rotate(3deg)}}
.parabens h2{margin:0;font-size:clamp(44px,8dvh,64px);--w:.18em}
.parabens-texto{margin:0;font-size:clamp(18px,2.4dvh,22px);color:var(--tinta-noite);text-wrap:balance}
.parabens .estrelas{background:#1B1248;box-shadow:inset 0 0 0 2px rgba(250,189,5,.3)}
.parabens .estrelas svg{width:38px;height:38px}
.subiu{margin:0;font-family:var(--excon);font-weight:900;color:var(--nami);font-size:clamp(20px,2.6dvh,24px)}
.figurinha{display:flex;align-items:center;gap:14px;padding:10px 18px 10px 12px;border-radius:22px;text-align:left;
  background:#2A1F6E;box-shadow:inset 0 0 0 2px rgba(250,189,5,.28)}
.figurinha-img{width:78px;height:78px;flex:none;border-radius:50%;padding:5px;background:var(--branco);rotate:-7deg;
  box-shadow:0 0 0 4px #fff,0 8px 18px rgba(9,5,34,.55);animation:carimbo .7s var(--mola) .4s both}
.figurinha-img img{width:100%;height:100%;object-fit:contain}
@keyframes carimbo{from{transform:scale(2.2);opacity:0}to{transform:none;opacity:1}}
.figurinha b{display:block;font-size:18px;color:var(--tinta-noite)}
.figurinha span{display:block;font-size:16px;font-weight:700;color:var(--tinta-noite-suave)}
.parabens-botoes{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:4px}
.btn{min-height:64px;padding:0 24px;border:0;border-radius:16px;font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;
  transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .16s cubic-bezier(.16,1,.3,1),filter .2s}
.btn:active{transition-duration:60ms;transform:translateY(4px)}
.btn-abobora{background:var(--lanterna);color:var(--tinta);--degrau:var(--lanterna-fundo);box-shadow:0 5px 0 var(--degrau)}
.btn-milo{background:var(--milo-royal);color:var(--tinta-noite);--degrau:var(--milo-degrau);box-shadow:0 5px 0 var(--degrau)}
.btn-abobora:active,.btn-milo:active{box-shadow:0 1px 0 var(--degrau)}
.btn-sec{background:var(--noite-2);color:var(--tinta-noite);box-shadow:inset 0 0 0 2px rgba(242,238,255,.45)}
@media (hover:hover){
  .hud-btn:hover{transform:translateY(-2px)}
  .btn:hover{filter:brightness(1.04);transform:translateY(-2px)}
  .btn-abobora:hover,.btn-milo:hover{box-shadow:0 7px 0 var(--degrau)}
  .btn:active{transform:translateY(4px)}
  .btn-abobora:active,.btn-milo:active{box-shadow:0 1px 0 var(--degrau)}
  .carta:hover{translate:0 -3px}
}
@media (orientation:landscape) and (max-height:620px){
  .parabens-conteudo{width:min(100%,860px);display:grid;grid-template-columns:auto 1fr;grid-template-areas:"lua titulo" "lua texto" "lua estrelas" "lua figurinha" "botoes botoes";column-gap:28px;row-gap:8px;align-items:center;justify-items:center}
  .palco-lua{grid-area:lua;width:clamp(170px,42dvh,240px)}
  .parabens h2{grid-area:titulo;font-size:clamp(36px,9dvh,52px)}
  .parabens-texto{grid-area:texto}
  .parabens .estrelas{grid-area:estrelas}
  .parabens .estrelas svg{width:30px;height:30px}
  .figurinha{grid-area:figurinha}
  .subiu{display:none}
  .parabens-botoes{grid-area:botoes;flex-direction:row}
  .parabens-botoes .btn{flex:1}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important}
  .carta.certa::after{display:none}
  .btn:hover,.btn:active{transform:none}
}
