*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
:root{--txt:#fff;--sub:rgba(255,255,255,.72);--vidro:rgba(255,255,255,.1);--linha:rgba(255,255,255,.18);--fundo:#0b0b14}
html,body{min-height:100%}
body{font-family:Outfit,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--txt);background:var(--fundo);
  min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
svg{fill:currentColor}

/* ---------- fundo ---------- */
.fundo{position:fixed;inset:0;z-index:-1;overflow:hidden;background:var(--fundo)}
.fundo-logo{position:absolute;inset:-10%;background-size:cover;background-position:center;filter:blur(60px) saturate(1.4);opacity:.35;transform:scale(1.1)}
.bolha{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;animation:flutua 18s ease-in-out infinite alternate}
.b1{width:55vmax;height:55vmax;background:var(--c1);left:-15vmax;top:-20vmax}
.b2{width:45vmax;height:45vmax;background:var(--c2);right:-15vmax;bottom:-15vmax;animation-duration:22s}
.b3{width:30vmax;height:30vmax;background:var(--c1);right:10vmax;top:20vmax;opacity:.3;animation-duration:26s}
@keyframes flutua{0%{transform:translate(0,0) scale(1)}50%{transform:translate(6vmax,4vmax) scale(1.08)}100%{transform:translate(-4vmax,7vmax) scale(.95)}}

/* ---------- palco ---------- */
.palco{flex:1;width:100%;max-width:560px;margin:0 auto;padding:max(28px,env(safe-area-inset-top)) 20px 24px;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.selo-vivo{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:800;letter-spacing:.14em;
  padding:7px 14px;border-radius:99px;background:rgba(0,0,0,.28);border:1px solid var(--linha);backdrop-filter:blur(10px)}
.selo-vivo i{width:9px;height:9px;border-radius:50%;background:#ff3b5c;box-shadow:0 0 0 0 rgba(255,59,92,.7);animation:pulso 1.6s infinite}
@keyframes pulso{70%{box-shadow:0 0 0 10px rgba(255,59,92,0)}100%{box-shadow:0 0 0 0 rgba(255,59,92,0)}}

.capa{position:relative;width:min(68vw,290px);aspect-ratio:1;margin:8px 0 6px}
.aro{position:absolute;inset:-10px;border-radius:32px;background:conic-gradient(from 0deg,var(--c1),var(--c2),var(--c1));
  filter:blur(18px);opacity:.75;animation:gira 8s linear infinite;animation-play-state:paused}
.tocando-agora .aro{animation-play-state:running}
.disco{position:relative;width:100%;height:100%;border-radius:28px;overflow:hidden;background:linear-gradient(135deg,var(--c1),var(--c2));
  box-shadow:0 30px 60px -20px rgba(0,0,0,.6);display:grid;place-items:center}
.disco img{width:100%;height:100%;object-fit:cover;display:block;background:#fff}
.iniciais{font-size:clamp(3rem,16vw,5.5rem);font-weight:800;letter-spacing:-.04em;text-shadow:0 6px 30px rgba(0,0,0,.3)}
@keyframes gira{to{transform:rotate(360deg)}}

.nome{font-size:clamp(1.6rem,6.5vw,2.4rem);font-weight:800;line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
.slogan{color:var(--sub);font-size:1.02rem;max-width:30ch;text-wrap:balance}

.tocando{display:flex;flex-direction:column;gap:2px;max-width:100%;padding:10px 18px;border-radius:16px;background:var(--vidro);
  border:1px solid var(--linha);backdrop-filter:blur(12px)}
.tocando .rot{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--sub)}
.tocando .faixa{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(78vw,440px)}

/* ---------- controles ---------- */
.controles{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:6px;width:100%}
.play{position:relative;width:88px;height:88px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 14px 34px -8px var(--c1),inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform .18s ease,box-shadow .18s ease}
.play:hover{transform:scale(1.06)}
.play:active{transform:scale(.96)}
.play:disabled{opacity:.45;cursor:not-allowed;transform:none}
.play svg{width:38px;height:38px}
.i-pause{display:none}
.tocando-agora .i-pause{display:block}
.tocando-agora .i-play{display:none}
.gira{position:absolute;inset:-6px;border-radius:50%;border:3px solid transparent;border-top-color:#fff;opacity:0}
.carregando .gira{opacity:.9;animation:gira .9s linear infinite}
.play::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--c2);opacity:0}
.tocando-agora .play::after{animation:onda 2s ease-out infinite}
@keyframes onda{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.6);opacity:0}}

.eq{display:flex;align-items:flex-end;gap:4px;height:34px}
.eq i{display:block;width:5px;height:6px;border-radius:3px;background:linear-gradient(to top,var(--c1),var(--c2));opacity:.55;transition:height .3s}
.tocando-agora .eq i{opacity:1;animation:barra calc(.45s + var(--i) * 19ms) ease-in-out infinite alternate;animation-delay:calc(var(--i) * -137ms)}
.tocando-agora .eq i:nth-child(3n){animation-duration:.52s}.tocando-agora .eq i:nth-child(4n+1){animation-duration:.71s}
@keyframes barra{0%{height:5px}100%{height:34px}}

.volume{display:flex;align-items:center;gap:10px;color:var(--sub)}
.volume svg{width:20px;height:20px}
.volume input{-webkit-appearance:none;appearance:none;width:150px;height:5px;border-radius:5px;background:var(--linha);outline:none}
.volume input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.volume input::-moz-range-thumb{width:16px;height:16px;border:0;border-radius:50%;background:#fff}
.estado{color:var(--sub);font-size:.9rem;min-height:1.2em}

/* ---------- redes ---------- */
.redes{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px}
.rede{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:14px;text-decoration:none;color:var(--txt);
  background:var(--vidro);border:1px solid var(--linha);backdrop-filter:blur(10px);font-weight:600;font-size:.9rem;transition:transform .15s,background .15s}
.rede:hover{transform:translateY(-2px);background:rgba(255,255,255,.18)}
.rede svg{width:20px;height:20px}
.rede-whatsapp svg{color:#25D366}.rede-instagram svg{color:#F77737}.rede-facebook svg{color:#4C8DFF}.rede-youtube svg{color:#FF3B3B}.rede-app svg{color:#3DDC84}
.compartilhar{display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:10px 18px;border-radius:99px;color:var(--sub);font-weight:600;font-size:.92rem;
  border:1px dashed var(--linha)}
.compartilhar:hover{color:var(--txt);border-style:solid}
.compartilhar svg{width:18px;height:18px}

.rodape{text-align:center;padding:16px 16px calc(70px + env(safe-area-inset-bottom));font-size:.8rem;color:var(--sub)}
.rodape a{color:inherit;text-decoration:none;font-weight:600}

/* ---------- convite (autoplay bloqueado) ---------- */
.convite{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:rgba(5,5,12,.55);backdrop-filter:blur(6px);animation:aparece .3s ease}
.convite button{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 36px;border-radius:28px;background:rgba(255,255,255,.1);border:1px solid var(--linha)}
.convite-play{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 0 0 0 var(--c2);animation:chama 1.8s infinite}
.convite-play svg{width:44px;height:44px}
.convite strong{font-size:1.35rem}
.convite small{color:var(--sub)}
@keyframes chama{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--c2) 70%,transparent)}100%{box-shadow:0 0 0 26px transparent}}
@keyframes aparece{from{opacity:0}to{opacity:1}}

/* =================== TEMAS =================== */

/* VINIL — o logo vira o rótulo de um disco girando */
[data-tema="vinil"]{--fundo:#111}
[data-tema="vinil"] .disco{border-radius:50%;background:repeating-radial-gradient(circle,#161616 0 2px,#222 2px 4px);box-shadow:0 30px 60px -10px rgba(0,0,0,.8),0 0 0 8px rgba(255,255,255,.04)}
[data-tema="vinil"] .disco img,[data-tema="vinil"] .disco .iniciais{width:46%;height:46%;border-radius:50%;object-fit:cover;box-shadow:0 0 0 6px var(--c1)}
[data-tema="vinil"] .disco .iniciais{display:grid;place-items:center;background:linear-gradient(135deg,var(--c1),var(--c2));font-size:2.4rem}
[data-tema="vinil"] .disco::after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#111;box-shadow:0 0 0 2px rgba(255,255,255,.25)}
[data-tema="vinil"] .disco{animation:gira 4s linear infinite;animation-play-state:paused}
[data-tema="vinil"] .tocando-agora .disco{animation-play-state:running}
[data-tema="vinil"] .aro{border-radius:50%}
[data-tema="vinil"] .bolha{opacity:.35}

/* NEON — escuro, contorno brilhante pulsando */
[data-tema="neon"]{--fundo:#05030d}
[data-tema="neon"] .bolha{opacity:.18}
[data-tema="neon"] .disco{border-radius:50%;box-shadow:0 0 0 3px var(--c2),0 0 30px var(--c2),0 0 80px var(--c1)}
[data-tema="neon"] .aro{border-radius:50%;filter:blur(30px)}
[data-tema="neon"] .tocando-agora .disco{animation:neon 1.6s ease-in-out infinite alternate}
@keyframes neon{to{box-shadow:0 0 0 3px var(--c1),0 0 50px var(--c1),0 0 110px var(--c2)}}
[data-tema="neon"] .nome{text-shadow:0 0 18px var(--c2),0 0 40px var(--c1)}
[data-tema="neon"] .play{background:transparent;border:3px solid var(--c2);box-shadow:0 0 22px var(--c2),inset 0 0 22px color-mix(in srgb,var(--c2) 40%,transparent)}
[data-tema="neon"] .eq i{background:var(--c2);box-shadow:0 0 8px var(--c2)}

/* PALCO — logo enorme no fundo, conteúdo embaixo */
[data-tema="palco"] .fundo-logo{inset:-5%;filter:blur(28px) saturate(1.3) brightness(.7);opacity:.85}
[data-tema="palco"] .fundo::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.15),rgba(0,0,0,.75) 70%)}
[data-tema="palco"] .bolha{opacity:.25}
[data-tema="palco"] .capa{width:min(74vw,320px)}
[data-tema="palco"] .disco{border-radius:20px;box-shadow:0 40px 80px -20px rgba(0,0,0,.9)}
[data-tema="palco"] .aro{display:none}

/* ONDA — tema claro */
[data-tema="onda"]{--fundo:#f6f7fb;--txt:#151827;--sub:#5b6074;--vidro:rgba(255,255,255,.75);--linha:rgba(20,24,39,.1)}
[data-tema="onda"] .bolha{opacity:.28;filter:blur(90px)}
[data-tema="onda"] .fundo-logo{opacity:.12}
[data-tema="onda"] .selo-vivo{background:#fff;color:#151827}
[data-tema="onda"] .disco{border-radius:50%;border:6px solid #fff;box-shadow:0 24px 50px -16px color-mix(in srgb,var(--c1) 60%,transparent)}
[data-tema="onda"] .aro{border-radius:50%;opacity:.45}
[data-tema="onda"] .play{color:#fff}
[data-tema="onda"] .volume input::-webkit-slider-thumb{background:var(--c1)}
[data-tema="onda"] .eq{height:44px}
[data-tema="onda"] .rede:hover{background:#fff}
[data-tema="onda"] .convite{background:rgba(246,247,251,.7)}
[data-tema="onda"] .convite strong{color:#151827}
[data-tema="onda"] .iniciais{color:#fff}

/* CRISTAL — vidro sobre degradê forte */
[data-tema="cristal"]{--fundo:var(--c1)}
[data-tema="cristal"] .fundo{background:linear-gradient(140deg,var(--c1),var(--c2))}
[data-tema="cristal"] .bolha{background:#fff;opacity:.16}
[data-tema="cristal"] .palco{margin-top:3vh;margin-bottom:3vh;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);
  border-radius:32px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 30px 80px -30px rgba(0,0,0,.5);max-width:min(520px,calc(100% - 24px))}
[data-tema="cristal"] .aro{opacity:.45}
[data-tema="cristal"] .play{background:#fff;color:var(--c1)}

@media (min-width:900px){
  .palco{padding-top:5vh}
  .capa{width:300px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
