/* Traçar a Letra v2 — "noite mágica": céu estrelado, trilha de luz,
   tinta de glitter dourado e a Lumi (vagalume) que segue o dedo. */
:root{
  --noite:#1B1640; --noite2:#2B2163; --tinta:#FFFFFF; --fraca:#CFC6F5;
  --ouro:#FFC94A; --ouro2:#FF8E5E; --verde:#35D07F; --verde2:#1B9E58;
  --rosa:#FF6FB1; --vidro:rgba(255,255,255,.13); --borda:rgba(255,255,255,.28);
  --sombra:0 10px 30px rgba(8,4,30,.45);
  --fonte:ui-rounded,"SF Pro Rounded","Arial Rounded MT Bold","Varela Round","Nunito","Quicksand","Comic Neue",system-ui,-apple-system,"Segoe UI",sans-serif;
  --alvo:76px;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden;overscroll-behavior:none}
body{
  background:var(--noite);color:var(--tinta);font-family:var(--fonte);
  -webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;
  display:flex;flex-direction:column;position:fixed;inset:0;
}
button{font-family:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:focus-visible{outline:4px solid var(--ouro);outline-offset:3px}

/* ---------- céu ---------- */
#ceu{position:fixed;inset:0;z-index:0;overflow:hidden;
  background:radial-gradient(120% 80% at 50% 110%,#5B3C8F 0%,#2B2163 45%,#141033 100%)}
#ceuCv{position:absolute;inset:0;width:100%;height:100%}
.colina{position:absolute;left:-6%;right:-6%;bottom:0;will-change:transform}
.colina svg{width:100%;height:100%;display:block}
#colina1{height:30%;opacity:.95}
#colina2{height:20%}

/* ---------- HUD ---------- */
#hud{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:calc(env(safe-area-inset-top,0px) + 10px) 14px 4px}
.btn-redondo,.btn-quad{
  width:var(--alvo);height:var(--alvo);flex:0 0 auto;border-radius:50%;
  background:linear-gradient(160deg,rgba(255,255,255,.24),rgba(255,255,255,.08));
  border:2px solid var(--borda);box-shadow:var(--sombra),inset 0 2px 0 rgba(255,255,255,.25);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  display:grid;place-items:center;transition:transform .15s ease;
}
.btn-quad{border-radius:24px;width:84px;height:84px}
.btn-redondo svg,.btn-quad svg{width:56%;height:56%;fill:#fff;stroke:#fff}
.btn-redondo:active,.btn-quad:active{transform:scale(.92)}
.btn-quad .estrela{fill:var(--ouro);stroke:none}
.btn-quad .risco{display:none;stroke:#FF8E8E}
.btn-quad[aria-pressed="false"] .risco{display:block}
.btn-quad[aria-pressed="false"] .onda{display:none}
.btn-quad[aria-pressed="false"]{opacity:.75}

#trilha{display:flex;align-items:center;gap:clamp(6px,1.6vmin,12px);
  background:var(--vidro);border:2px solid var(--borda);border-radius:40px;padding:10px 16px;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--sombra)}
.ponto{width:clamp(18px,3.4vmin,28px);height:clamp(18px,3.4vmin,28px);border-radius:50%;
  background:rgba(255,255,255,.18);border:2px solid rgba(255,255,255,.35);display:grid;place-items:center;
  transition:transform .3s cubic-bezier(.3,1.6,.5,1),background .3s}
.ponto.atual{transform:scale(1.3);border-color:var(--ouro);box-shadow:0 0 14px rgba(255,201,74,.8)}
.ponto.feito{background:radial-gradient(circle at 35% 30%,#FFF3B0,var(--ouro) 55%,#E08A1E);border-color:#FFE7A0;
  box-shadow:0 0 12px rgba(255,201,74,.75)}

/* ---------- palco ---------- */
#palco{position:relative;z-index:2;flex:1;min-height:0}
#papel{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
#cartao{position:absolute;z-index:3;top:4px;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:clamp(8px,2vmin,16px);
  background:linear-gradient(160deg,rgba(255,255,255,.2),rgba(255,255,255,.07));
  border:2px solid var(--borda);border-radius:28px;padding:6px 18px 6px 8px;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--sombra);pointer-events:none;
  max-width:calc(100% - 24px)}
#cartaoLetra{width:clamp(54px,10vmin,90px);height:clamp(54px,10vmin,90px);flex:0 0 auto}
#cartaoTxt{display:flex;align-items:center;gap:8px;min-width:0}
#cartaoEmoji{font-size:clamp(30px,6.4vmin,54px);line-height:1;filter:drop-shadow(0 3px 4px rgba(0,0,0,.35))}
#cartaoPalavra{font-size:clamp(20px,4.2vmin,34px);font-weight:900;letter-spacing:.04em;white-space:nowrap;
  text-shadow:0 2px 0 rgba(0,0,0,.25)}
#cartaoPalavra b{color:var(--ouro);font-weight:900}

#aviso{position:absolute;z-index:4;left:50%;bottom:max(10px,2.5%);transform:translateX(-50%);
  background:rgba(20,14,60,.78);border:2px solid var(--borda);color:#fff;font-weight:900;
  font-size:clamp(20px,4.6vmin,32px);border-radius:999px;padding:10px 24px;opacity:0;pointer-events:none;
  white-space:nowrap;max-width:94%;overflow:hidden;text-overflow:ellipsis;box-shadow:var(--sombra);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
#aviso.mostra{animation:aviso 2.2s ease forwards}
@keyframes aviso{0%{opacity:0;transform:translate(-50%,20px) scale(.8)}12%{opacity:1;transform:translate(-50%,0) scale(1.05)}
  20%{transform:translate(-50%,0) scale(1)}82%{opacity:1}100%{opacity:0;transform:translate(-50%,-8px)}}

/* ---------- a letra ganha vida ---------- */
#vida{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;
  pointer-events:none;opacity:0;visibility:hidden}
#vida.mostra{opacity:1;visibility:visible}
#vidaRaios{position:absolute;width:min(130vmin,1100px);height:min(130vmin,1100px);border-radius:50%;
  background:repeating-conic-gradient(rgba(255,214,120,.22) 0 9deg,transparent 9deg 22.5deg);
  -webkit-mask:radial-gradient(circle,#000 18%,transparent 62%);mask:radial-gradient(circle,#000 18%,transparent 62%);
  opacity:0}
#vida.mostra #vidaRaios{animation:raios 8s linear infinite,aparece .6s ease forwards}
#vidaSelo{position:relative;width:min(46vmin,300px);height:min(46vmin,300px);border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 35% 28%,#FFFFFF,#FFF2D6 45%,#FFD27A 100%);
  box-shadow:0 0 0 8px rgba(255,255,255,.9),0 0 0 14px rgba(255,201,74,.55),0 24px 60px rgba(10,4,40,.6),0 0 80px rgba(255,201,74,.55);
  transform:scale(0)}
#vidaEmoji{font-size:min(28vmin,180px);line-height:1;filter:drop-shadow(0 8px 10px rgba(80,40,0,.35))}
#vida.mostra #vidaSelo{animation:pula .9s cubic-bezier(.2,1.6,.4,1) forwards}
#vida.mostra #vidaEmoji{animation:respira 1.6s ease-in-out .9s infinite}
#vidaPalavra{position:relative;margin-top:clamp(14px,3vmin,26px);font-size:clamp(34px,8vmin,64px);font-weight:900;letter-spacing:.06em;
  color:#fff;text-shadow:0 4px 0 rgba(30,10,80,.5),0 0 24px rgba(255,201,74,.6);opacity:0}
#vidaPalavra b{color:var(--ouro)}
#vida.mostra #vidaPalavra{animation:sobe .6s ease .45s forwards}
#vidaEstrelas{position:relative;display:flex;gap:10px;margin-top:6px;height:clamp(40px,8vmin,64px)}
.est{width:clamp(40px,8vmin,64px);height:clamp(40px,8vmin,64px);transform:scale(0)}
.est svg{width:100%;height:100%}
#vida.mostra .est{animation:pula .5s cubic-bezier(.2,1.8,.4,1) forwards}
@keyframes pula{0%{transform:scale(0) rotate(-20deg)}100%{transform:scale(1) rotate(0)}}
@keyframes respira{0%,100%{transform:scale(1) rotate(-3deg)}50%{transform:scale(1.08) rotate(3deg)}}
@keyframes sobe{0%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:none}}
@keyframes raios{to{transform:rotate(360deg)}}
@keyframes aparece{to{opacity:1}}

/* ---------- telas ---------- */
.tela{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:clamp(10px,2.4vmin,22px);padding:calc(env(safe-area-inset-top,0px) + 18px) 16px calc(env(safe-area-inset-bottom,0px) + 18px);
  text-align:center;overflow-y:auto;
  background:radial-gradient(90% 60% at 50% 0%,rgba(255,201,74,.18),transparent 60%),
             radial-gradient(120% 80% at 50% 110%,#5B3C8F 0%,#2B2163 45%,#141033 100%);
  transition:opacity .35s ease,visibility .35s}
.tela.oculta{opacity:0;visibility:hidden;pointer-events:none}
#pausa{background:rgba(16,10,48,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.titulo{font-size:clamp(44px,12vmin,92px);line-height:.95;font-weight:900;letter-spacing:.01em;
  background:linear-gradient(180deg,#FFF6C9 10%,#FFC94A 55%,#FF8E5E 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 5px 0 rgba(40,12,90,.7)) drop-shadow(0 0 22px rgba(255,201,74,.35))}
.titulo.pequeno{font-size:clamp(40px,9vmin,70px)}
#menuLumi{width:min(220px,40vmin);height:auto;aspect-ratio:220/200}
.btn-grande{min-width:min(340px,86vw);min-height:88px;padding:16px 40px;border:none;border-radius:999px;
  font-size:clamp(28px,6vmin,40px);font-weight:900;letter-spacing:.06em;color:#08381F;
  background:linear-gradient(180deg,#8DF5B6 0%,var(--verde) 48%,#22B068 100%);
  box-shadow:0 8px 0 var(--verde2),0 16px 32px rgba(0,0,0,.45),inset 0 3px 0 rgba(255,255,255,.6);
  transition:transform .12s ease,box-shadow .12s ease}
.btn-grande:active{transform:translateY(6px);box-shadow:0 2px 0 var(--verde2),0 6px 14px rgba(0,0,0,.4),inset 0 3px 0 rgba(255,255,255,.6)}
#menu .btn-grande{animation:chama 2.4s ease-in-out infinite}
@keyframes chama{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.linha-op{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}
.caixa-sel{display:flex;background:rgba(255,255,255,.1);border:2px solid var(--borda);border-radius:999px;padding:4px}
.chip{min-width:96px;height:76px;border:none;border-radius:999px;background:transparent;font-size:32px;font-weight:900;color:var(--fraca)}
.chip[aria-pressed="true"]{background:linear-gradient(180deg,#FFF0B5,var(--ouro));color:#5A2E00;box-shadow:0 4px 0 #C98A1B}
.hoje{font-size:clamp(18px,3.6vmin,24px);font-weight:800;color:var(--fraca)}
.hoje b{color:var(--ouro)}

/* álbum */
#album{justify-content:flex-start}
.album-topo{display:flex;align-items:center;gap:14px;width:min(900px,100%);justify-content:space-between}
.album-topo h2{font-size:clamp(30px,7vmin,48px);font-weight:900;color:#FFE9A8;flex:1;text-align:center;padding-right:var(--alvo)}
#grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:12px;width:min(900px,100%);padding:4px 2px 20px}
.fig{position:relative;aspect-ratio:1/1.12;min-height:92px;border-radius:20px;border:2px solid var(--borda);
  background:linear-gradient(160deg,rgba(255,255,255,.14),rgba(255,255,255,.04));display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:4px;box-shadow:0 6px 16px rgba(0,0,0,.3)}
.fig svg{width:62%;height:auto}
.fig .em{position:absolute;right:4px;top:2px;font-size:24px}
.fig .es{font-size:17px;line-height:1;letter-spacing:-1px;color:#E89A12;height:18px;text-shadow:0 1px 0 #fff}
.fig.tem{background:linear-gradient(160deg,#FFF6DC,#FFD98A);border-color:#FFF2C4}
.fig.vazia svg{opacity:.35}
#fimFigs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;max-width:620px}
#fimFigs .fig{width:clamp(84px,17vmin,110px)}

@media (orientation:landscape) and (max-height:560px){
  #hud{position:absolute;left:0;right:0;top:0;padding:calc(env(safe-area-inset-top,0px) + 8px) 12px 0;pointer-events:none}
  #hud > *{pointer-events:auto}
  #trilha{position:absolute;right:12px;top:calc(env(safe-area-inset-top,0px) + 96px);flex-direction:column;padding:10px 6px}
  #btOuvir{position:absolute;right:12px;top:calc(env(safe-area-inset-top,0px) + 8px)}
  #btPausa{position:absolute;left:12px;top:calc(env(safe-area-inset-top,0px) + 8px)}
  #cartao{top:96px;left:10px;transform:none;flex-direction:column;padding:10px 8px;gap:4px;width:clamp(120px,19vw,170px);border-radius:24px}
  #cartaoTxt{flex-direction:column;gap:2px}
  #cartaoPalavra{font-size:clamp(16px,3.4vh,22px)}
  .tela{flex-direction:row;flex-wrap:wrap;align-content:center}
  .tela .titulo{width:100%}
  #menu .titulo{width:auto;text-align:left}
  #menuLumi{width:min(160px,34vh)}
  #album{flex-direction:column;flex-wrap:nowrap}
  #fim #fimFigs{width:100%}
  #fim .hoje{width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition:none !important}
  #vida.mostra #vidaSelo,#vida.mostra .est{transform:scale(1)}
}
