/* Bando — folha de estilo unica. Mobile primeiro. */

:root{
  --ceu-alto:#a6dcf2;
  --ceu-baixo:#cdeaf7;
  --madeira:#b07c4e;
  --madeira-esc:#7d5334;
  --madeira-luz:#c99666;
  --tinta:#3d3128;
  --tinta-fraca:#7d6f61;
  --creme:#fff8ec;
  --creme-esc:#f4e3c8;
  --laranja:#f0a04b;
  --laranja-esc:#cf7f2e;
  --borda:rgba(125,83,52,.26);
  --sombra:0 3px 0 rgba(150,112,70,.30), 0 6px 14px rgba(90,68,44,.16);
  --topo: env(safe-area-inset-top, 0px);
  --base: env(safe-area-inset-bottom, 0px);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}

html,body{height:100%}
body{
  margin:0;
  font-family:"Nunito","Segoe UI",system-ui,-apple-system,sans-serif;
  color:var(--tinta);
  background:var(--ceu-alto);
  overflow:hidden;
  overscroll-behavior:none;
  display:flex;
  flex-direction:column;
  user-select:none;
}

/* ---------- fundo ---------- */
#ceu{position:fixed;inset:0;z-index:0;
  background:linear-gradient(180deg,var(--ceu-alto) 0%,#bce4f5 55%,var(--ceu-baixo) 100%)}
#ceu .sol{position:absolute;top:13%;right:7%;width:92px;height:92px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#fffceb,#ffe89a 55%,rgba(255,232,154,0) 72%);opacity:.9}
#ceu .nuvem{position:absolute;height:32px;border-radius:999px;background:rgba(255,255,255,.52);
  box-shadow:26px 6px 0 -6px rgba(255,255,255,.52), -24px 8px 0 -8px rgba(255,255,255,.52)}
#ceu .n1{top:11%;left:-14%;width:118px;animation:passa 78s linear infinite}
#ceu .n2{top:29%;left:-24%;width:88px;height:25px;animation:passa 112s linear infinite;animation-delay:-30s;opacity:.8}
#ceu .n3{top:63%;left:-18%;width:146px;height:38px;animation:passa 144s linear infinite;animation-delay:-70s;opacity:.5}
@keyframes passa{from{transform:translateX(0)}to{transform:translateX(150vw)}}

/* trepadeira na base, como no jogo de referencia */
#ceu .mato{position:absolute;left:0;right:0;bottom:calc(var(--base) + 74px);height:56px;
  background:
    radial-gradient(14px 9px at 8% 62%, #6ea855 60%, transparent 61%),
    radial-gradient(16px 10px at 22% 52%, #7fb862 60%, transparent 61%),
    radial-gradient(13px 8px at 36% 66%, #6ea855 60%, transparent 61%),
    radial-gradient(17px 11px at 52% 55%, #7fb862 60%, transparent 61%),
    radial-gradient(13px 9px at 67% 64%, #6ea855 60%, transparent 61%),
    radial-gradient(16px 10px at 81% 54%, #7fb862 60%, transparent 61%),
    radial-gradient(14px 9px at 94% 63%, #6ea855 60%, transparent 61%),
    linear-gradient(180deg, transparent 68%, rgba(94,140,74,.30) 100%);
  opacity:.9}
#ceu .mato::after{content:"";position:absolute;left:-2%;right:-2%;bottom:22px;height:5px;
  border-radius:3px;background:#5f7f45;opacity:.85}
@media (prefers-reduced-motion:reduce){#ceu .nuvem{animation:none}}

/* ---------- topo ---------- */
#topo{
  position:relative;z-index:2;flex:0 0 auto;
  display:flex;align-items:center;gap:8px;
  padding:calc(var(--topo) + 10px) 12px 6px;
}
.chip{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:80px;padding:5px 14px;
  border:2px solid #fff;border-radius:999px;
  background:linear-gradient(180deg,var(--creme),var(--creme-esc));
  box-shadow:0 3px 0 rgba(150,112,70,.28), 0 5px 12px rgba(90,68,44,.18);
  font:inherit;color:inherit;cursor:pointer;
}
.chip.mid{margin-left:auto;cursor:default}
.chip-rot{font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:var(--tinta-fraca);line-height:1}
.chip b{font-size:18px;font-weight:800;line-height:1.15}
.icone{
  width:44px;height:44px;margin-left:8px;display:grid;place-items:center;
  border:2px solid #fff;border-radius:50%;
  background:linear-gradient(180deg,var(--creme),var(--creme-esc));
  box-shadow:0 3px 0 rgba(150,112,70,.28), 0 5px 12px rgba(90,68,44,.18);
  font-size:19px;cursor:pointer;color:inherit;
}
.icone.mudo{opacity:.45}

/* ---------- tabuleiro ---------- */
/* Dois lados, como no jogo de referencia: os galhos nascem das bordas da tela,
   sangram para fora e a coluna da direita desce meia fileira. */
#tabuleiro{
  position:relative;z-index:1;flex:1 1 auto;
  display:grid;align-content:center;
  gap:clamp(9px,2.2vh,18px) 16px;
  padding:14px 0 34px;
  grid-template-columns:1fr 1fr;
  width:100%;max-width:560px;margin:0 auto;
}

.galho{position:relative;display:flex;flex-direction:column;cursor:pointer}
.galho.dir{transform:translateY(26px)}

/* o galho passa da borda: o tronco fica fora da tela */
.galho.esq{margin-left:-22px;padding-left:22px}
.galho.dir{margin-right:-22px;padding-right:22px}

.vagas{display:flex;width:100%;gap:0;align-items:flex-end;margin-bottom:-5px}
.vaga{flex:1 1 0;aspect-ratio:1/1;position:relative}

/* o poleiro afina da base para a ponta, como um galho de verdade */
.galho .poleiro{
  position:relative;width:calc(100% + 22px);height:19px;
  background:linear-gradient(180deg,var(--madeira-luz) 0%,var(--madeira) 45%,var(--madeira-esc) 100%);
}
.galho.esq .poleiro{margin-left:-22px;clip-path:polygon(0 0,100% 36%,100% 68%,0 100%)}
.galho.dir .poleiro{margin-right:-22px;clip-path:polygon(0 36%,100% 0,100% 100%,0 68%)}
.galho .poleiro::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(96deg,
    rgba(255,255,255,.10) 0 2px, transparent 2px 9px,
    rgba(90,58,32,.13) 9px 11px, transparent 11px 22px);
}
.galho .folha{position:absolute;bottom:1px;width:17px;height:10px;
  border-radius:0 100% 0 100%;background:#79ad61;box-shadow:0 1px 0 rgba(0,0,0,.08)}
.galho.esq .folha{right:2px;transform:rotate(150deg)}
.galho.dir .folha{left:2px;transform:rotate(-30deg)}

.galho.alvo .poleiro{filter:brightness(1.14)}
.galho.dica-de .poleiro,.galho.dica-para .poleiro{animation:pisca 1s ease-in-out 3}
@keyframes pisca{0%,100%{filter:brightness(1)}50%{filter:brightness(1.35) drop-shadow(0 0 6px #ffd97a)}}

/* ---------- passarinho ---------- */
.passaro{position:absolute;inset:-6% -2%;display:block;
  transition:transform .16s cubic-bezier(.34,1.56,.64,1);will-change:transform}
.passaro.sel{transform:translateY(-30%) scale(1.08)}
.passaro svg{width:100%;height:100%;display:block;
  filter:drop-shadow(0 2px 2px rgba(61,49,40,.26))}
.passaro .simbolo{font-size:12px;font-weight:900;fill:#fff;paint-order:stroke;
  stroke:rgba(0,0,0,.35);stroke-width:2.6px}
.voando{position:fixed;z-index:60;pointer-events:none}

/* ---------- rodape ---------- */
#aviso{
  position:relative;z-index:2;margin:0;min-height:20px;text-align:center;
  font-size:13px;font-weight:800;color:#5d5145;padding:0 16px;
  text-shadow:0 1px 0 rgba(255,255,255,.6);
}
#acoes{
  position:relative;z-index:2;flex:0 0 auto;
  display:flex;gap:10px;justify-content:center;
  padding:4px 12px calc(var(--base) + 14px);
}
.acao{
  position:relative;flex:1 1 0;max-width:96px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:11px 4px 9px;
  border:2px solid #fff;border-radius:20px;
  background:linear-gradient(180deg,var(--creme) 0%,var(--creme-esc) 100%);
  box-shadow:var(--sombra);
  font:inherit;font-size:11px;font-weight:800;color:var(--tinta);cursor:pointer;
}
.acao:active{transform:translateY(3px);box-shadow:0 0 0 rgba(150,112,70,.3),0 2px 6px rgba(90,68,44,.2)}
.acao[disabled]{opacity:.42;cursor:default}
.acao .gl{font-size:21px;line-height:1;display:grid;place-items:center;height:22px}
.selo{
  position:absolute;top:-7px;right:-6px;min-width:22px;height:22px;padding:0 5px;
  border:2px solid #fff;border-radius:11px;
  background:linear-gradient(180deg,var(--laranja),var(--laranja-esc));
  color:#fff;font-size:12px;font-weight:800;font-style:normal;line-height:18px;
  box-shadow:0 2px 4px rgba(90,68,44,.3);
}
.acao[disabled] .selo{background:linear-gradient(180deg,#bdb3a6,#a1968a)}

/* ---------- janela ---------- */
#cortina{position:fixed;inset:0;z-index:70;background:rgba(52,42,33,.45);backdrop-filter:blur(2px)}
#janela{
  position:fixed;z-index:71;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(344px,90vw);max-height:82vh;overflow:auto;
  padding:22px;border-radius:26px;
  background:var(--creme);border:3px solid #fff;
  box-shadow:0 18px 50px rgba(60,44,28,.38);
  text-align:center;animation:sobe .26s cubic-bezier(.2,.9,.3,1.3);
}
@keyframes sobe{from{opacity:0;transform:translate(-50%,-42%) scale(.92)}}
#janela h2{margin:6px 0 4px;font-size:23px}
#janela p{margin:4px 0 16px;color:var(--tinta-fraca);font-size:14px;line-height:1.5}
#janela .btPrim{
  width:100%;padding:14px;border:2px solid #fff;border-radius:18px;
  background:linear-gradient(180deg,#f7b163,var(--laranja));color:#fff;
  font:inherit;font-size:16px;font-weight:800;cursor:pointer;
  box-shadow:0 4px 0 var(--laranja-esc),0 7px 14px rgba(90,68,44,.22);
}
#janela .btPrim:active{transform:translateY(3px);box-shadow:0 1px 0 var(--laranja-esc)}
#janela .btSec{
  margin-top:9px;width:100%;padding:11px;border:2px solid var(--borda);border-radius:16px;
  background:transparent;font:inherit;font-size:14px;font-weight:800;color:var(--tinta-fraca);cursor:pointer;
}
.grade{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:12px 0 16px}
.grade button{
  aspect-ratio:1;border:2px solid #fff;border-radius:13px;
  background:linear-gradient(180deg,#fff,#f1e5d2);
  box-shadow:0 2px 0 rgba(150,112,70,.25);
  font:inherit;font-weight:800;font-size:14px;color:var(--tinta);cursor:pointer;
}
.grade button.feito{background:linear-gradient(180deg,#e6f4da,#cfe9bd);box-shadow:0 2px 0 #a9cf92}
.grade button.atual{background:linear-gradient(180deg,#f7b163,var(--laranja));color:#fff;box-shadow:0 2px 0 var(--laranja-esc)}
.grade button[disabled]{opacity:.32;cursor:default;box-shadow:none}
.opcao{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 2px;font-size:14px;font-weight:800;border-top:1px solid var(--borda)}
.opcao input{width:44px;height:26px;accent-color:var(--laranja)}
.confete{position:fixed;z-index:69;width:9px;height:14px;border-radius:2px;pointer-events:none}
