/* ============================================================
   GABRIEL FELLIX — style.css — Premium Edition
   ============================================================ */

:root {
  --cor-primaria: #8b5cf6;
  --cor-primaria-suave: rgba(168, 85, 247, 0.45);
  --cor-primaria-glow: rgba(168, 85, 247, 0.25);
  --cor-fundo: #060608;
  --cor-card: rgba(255, 255, 255, 0.04);
  --cor-card-hover: rgba(255, 255, 255, 0.08);
  --cor-glass: rgba(255, 255, 255, 0.05);
  --cor-glass-border: rgba(255, 255, 255, 0.08);
  --cor-texto: #f0f0f0;
  --cor-texto-suave: rgba(240, 240, 240, 0.52);
  --raio-card: 1.5rem;
  --raio-hero: 2.5rem;
  --largura-max: 720px;
  --transicao: 0.28s cubic-bezier(0.22, 1, 0.36, 1);
  --sombra-neon: 0 0 28px rgba(168, 85, 247, 0.3), 0 0 64px rgba(168, 85, 247, 0.12);
  --sombra-neon-forte: 0 0 40px rgba(168, 85, 247, 0.5), 0 0 80px rgba(168, 85, 247, 0.2);
  --sombra-card: 0 8px 32px rgba(0, 0, 0, 0.45), 0 1px 0 rgba(255,255,255,0.06) inset;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  width: 100%;
  overflow-x: hidden;
  touch-action: pan-x pan-y;
  -ms-touch-action: pan-x pan-y;
}

body {
  background-color: var(--cor-fundo);
  color: var(--cor-texto);
  font-family: 'Montserrat', sans-serif;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  touch-action: pan-x pan-y;
  width: 100%;
  overflow-x: hidden;
}

/* garante que nenhum elemento estoure a largura */
img, video, iframe, canvas, svg { max-width: 100%; }

img { display: block; max-width: 100%; }
a   { color: inherit; text-decoration: none; }

.fundo-fixo {
  position: fixed; inset: 0;
  background-image: url('../assets/images/cover.webp');
  background-size: cover; background-position: center;
  filter: blur(55px); opacity: 0.16; transform: translateZ(0) scale(1.08);
  z-index: -1; pointer-events: none;
}

.pagina {
  position: relative; min-height: 100vh;
  max-width: var(--largura-max); margin: 0 auto;
}

/* ══ HERO ══ */
.hero {
  position: relative;
  height: var(--hero-height, calc(var(--vh, 1vh) * 100));
  min-height: 600px;
  max-height: 950px;
  touch-action: pan-x pan-y;
  display: flex; flex-direction: column;
  align-items: center; justify-content: flex-end;
  margin-top: 1.25rem; padding-bottom: 2.5rem;
  overflow: hidden;
  border-radius: var(--raio-hero) var(--raio-hero) 0 0;
  background-color: #0c0c12;
}

.hero__cover {
  will-change: transform, opacity;
  contain: layout paint;
  position: absolute; inset: 0;
  background-image: url('../assets/images/cover.webp');
  background-size: cover; background-position: center top;
  border-radius: inherit; opacity: 0;
  transform: translate3d(0, 22px, 0) scale(1.06);
  transition: opacity 1.05s cubic-bezier(0.22, 1, 0.36, 1), transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
  backface-visibility: hidden;
  transform-style: preserve-3d;
}
.hero__cover.entrou { opacity: 0.88; transform: translate3d(0, 0, 0) scale(1.02); }
.hero__cover.parallax-ready { transition: none !important; }
.hero__cover::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(6,6,8,0.02) 0%, rgba(6,6,8,0.06) 38%, rgba(6,6,8,0.82) 70%, var(--cor-fundo) 100%);
  border-radius: inherit;
}

.hero__conteudo { position: relative; z-index: 1; text-align: center; padding: 0 1.5rem; }
.hero__particulas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
  will-change: auto;
  contain: layout paint;
}


.hero__logo {
  width: 100%; max-width: 340px; max-height: 340px; height: auto;
  margin: 0 auto 0.5rem; opacity: 0;
  transform: translate3d(0, 20px, 0) scale(0.92);
  will-change: transform, opacity;
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0.7s;
  /* drop-shadow removido — causa repaint em cada frame no mobile */
}
.hero__logo.entrou { opacity: 1; transform: translate3d(0, 0, 0) scale(1); will-change: auto; }

.hero__titulo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

.hero__redes {
  display: flex; justify-content: center; gap: 0.5rem; margin-top: 2rem;
  opacity: 0; transform: translate3d(0, 16px, 0);
  will-change: transform, opacity;
  transition: opacity 0.7s ease, transform 0.7s ease; transition-delay: 1.2s;
}
.hero__redes.entrou { opacity: 1; transform: translate3d(0, 0, 0); will-change: auto; }

.hero__redes a {
  display: block; padding: 0.5rem;
  transition: transform var(--transicao), opacity var(--transicao);
}
.hero__redes a:hover {
  transform: scale(1.22) translateY(-3px);
  opacity: 0.16;
}
.hero__redes svg { width: 2.4rem; height: 2.4rem; fill: var(--cor-primaria); transition: filter var(--transicao); }
.hero__redes a:hover svg { filter: drop-shadow(0 0 7px rgba(168,85,247,0.8)); }

.hero__scroll {
  position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%);
  color: rgba(255,255,255,0.38); z-index: 1; opacity: 0;
  transition: opacity 0.6s ease; transition-delay: 1.65s;
}
.hero__scroll.entrou { opacity: 1; animation: pulsar 1.8s ease-in-out infinite; }
.hero__scroll svg { width: 2rem; height: 2rem; }

@keyframes pulsar {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(8px); }
}

/* ══ CORPO ══ */
.corpo { position: relative; background-color: var(--cor-fundo); border-radius: 0 0 var(--raio-hero) var(--raio-hero); }

.secao-titulo {
  font-size: clamp(1rem, 3vw, 1.35rem); font-weight: 300;
  text-align: center; text-transform: uppercase; letter-spacing: 0.65em;
  margin-bottom: 2.5rem;
  background: linear-gradient(135deg, #fff 0%, var(--cor-primaria) 60%, var(--cor-primaria-suave) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.secao-titulo::after {
  content: ''; display: block; width: 2.5rem; height: 1px;
  background: linear-gradient(90deg, transparent, var(--cor-primaria), transparent);
  margin: 0.75rem auto 0;
}

.secao { padding: 3rem 1.5rem; }
@media (min-width: 640px) { .secao { padding: 3.5rem 2.5rem; } }

/* ══ OUÇA AGORA ══ */
.sets { display: flex; flex-direction: column; gap: 3.5rem; }
.player-video { border-radius: var(--raio-card); overflow: hidden; box-shadow: var(--sombra-card); aspect-ratio: 16/9; border: 1px solid var(--cor-glass-border); }
.player-video iframe { width: 100%; height: 100%; border: none; }
.player-video video { width: 100%; height: 100%; display: block; object-fit: cover; background: #050505; }
.player-video--local { margin-bottom: 1.6rem; background: #050505; }
.player-video--local video { cursor: pointer; }
.player-video--local.player-video--aberto {
  width: min(100%, 430px);
  aspect-ratio: 9 / 16;
  margin-inline: auto;
}
.player-video--local.player-video--aberto video {
  object-fit: contain;
}
.player-video__play {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 4;
  width: 4.6rem;
  height: 3.25rem;
  border: 0;
  border-radius: 0.8rem;
  display: grid;
  place-items: center;
  color: #fff;
  background: rgba(217, 42, 36, 0.96);
  box-shadow: 0 12px 34px rgba(0,0,0,0.45), 0 0 28px rgba(168,85,247,0.24);
  transform: translate(-50%, -50%);
  cursor: pointer;
  transition: transform var(--transicao), opacity var(--transicao), background var(--transicao);
}
.player-video__play svg {
  width: 2rem;
  height: 2rem;
  fill: currentColor;
  transform: translateX(2px);
}
.player-video__play:hover { background: #ff1f1f; transform: translate(-50%, -50%) scale(1.06); }
.player-video--tocando .player-video__play { opacity: 0; pointer-events: none; transform: translate(-50%, -50%) scale(0.92); }
.player-audio { border-radius: var(--raio-card); overflow: hidden; box-shadow: var(--sombra-card); border: 1px solid var(--cor-glass-border); }
.player-audio iframe { width: 100%; height: 300px; border: none; display: block; }

.link-plataforma {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.4em;
  transition: opacity var(--transicao), letter-spacing var(--transicao);
}
.link-plataforma:hover { opacity: 0.75; letter-spacing: 0.5em; }
.link-plataforma--spotify { color: #a855f7; }
.link-plataforma--tiktok  { color: #c084fc; }
.link-plataforma svg { width: 1.1rem; height: 1.1rem; fill: currentColor; }
.link-plataforma-wrap { display: flex; justify-content: center; margin-top: 1rem; }

/* ══ BIO — glassmorphism ══ */
.bio { position: relative; overflow: hidden; padding-top: 3.5rem; padding-bottom: 3.5rem; }
.bio__bg {
  position: absolute; inset: 0;
  background-image: url('../assets/images/bio-bg.webp');
  background-size: cover; background-position: center;
  transform: scale(1.08); opacity: 0.16; z-index: 0;
}
.bio__conteudo {
  position: relative; z-index: 1; max-width: 640px; margin: 0 auto;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 2rem; padding: 2.5rem 2rem;
  backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
  box-shadow: var(--sombra-card);
}

.bio__idiomas { display: flex; justify-content: center; gap: 0.5rem; margin-bottom: 2rem; flex-wrap: wrap; }
.btn-idioma {
  padding: 0.35rem 1.1rem; border-radius: 999px; border: 1px solid transparent;
  background: transparent; color: var(--cor-texto-suave);
  font-family: inherit; font-size: 0.82rem; font-weight: 500; cursor: pointer;
  transition: color var(--transicao), border-color var(--transicao), background var(--transicao), box-shadow var(--transicao);
}
.btn-idioma:hover { color: var(--cor-texto); border-color: rgba(255,255,255,0.15); }
.btn-idioma.ativo { color: var(--cor-primaria); border-color: var(--cor-primaria-suave); background: rgba(59,130,246,0.1); box-shadow: 0 0 14px rgba(59,130,246,0.18); }

.bio__texto { display: none; font-size: 0.97rem; color: var(--cor-texto-suave); text-align: justify; white-space: pre-line; line-height: 1.9; }
.bio__texto.visivel { display: block; }

/* ══ GALERIA ══ */
.galeria { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; border-radius: var(--raio-card); overflow: hidden; }

.galeria__item {
  position: relative; aspect-ratio: 1/1; overflow: hidden; cursor: pointer;
  opacity: 0; transform: scale(0.88);
  transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.galeria__item::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(59,130,246,0.18), rgba(0,0,0,0));
  opacity: 0; transition: opacity 0.3s ease;
}
.galeria__item:hover::after { opacity: 1; }
.galeria__item::before {
  content: ''; position: absolute; inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") center/2rem no-repeat;
  opacity: 0; z-index: 1; transition: opacity 0.3s ease;
}
.galeria__item:hover::before { opacity: 0.16; }
.galeria__item.entrou { opacity: 0.72; transform: scale(1); }
.galeria__item:hover  { opacity: 1 !important; }
.galeria__item:nth-child(1) { transition-delay: 0.00s; }
.galeria__item:nth-child(2) { transition-delay: 0.07s; }
.galeria__item:nth-child(3) { transition-delay: 0.14s; }
.galeria__item:nth-child(4) { transition-delay: 0.21s; }
.galeria__item:nth-child(5) { transition-delay: 0.28s; }
.galeria__item:nth-child(6) { transition-delay: 0.35s; }
.galeria__item:nth-child(7) { transition-delay: 0.42s; }
.galeria__item:nth-child(8) { transition-delay: 0.49s; }
.galeria__item:nth-child(9) { transition-delay: 0.56s; }
.galeria__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); }
.galeria__item:hover img { transform: scale(1.08); }

/* ── Lightbox premium ── */
.lightbox {
  display: none; position: fixed; inset: 0;
  background: rgba(4, 4, 8, 0.94);
  backdrop-filter: blur(28px); -webkit-backdrop-filter: blur(28px);
  z-index: 9999; align-items: center; justify-content: center; padding: 1rem;
}
.lightbox.aberto { display: flex; animation: fadeInLb 0.3s ease; }
@keyframes fadeInLb { from { opacity: 0; } to { opacity: 1; } }

.lightbox__img {
  max-width: 90vw; max-height: 88vh; border-radius: 1.25rem; object-fit: contain;
  box-shadow: 0 0 80px rgba(0,0,0,0.8), var(--sombra-neon);
  border: 1px solid rgba(59,130,246,0.14);
  animation: zoomInImg 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes zoomInImg { from { transform: scale(0.92); opacity: 0; } to { transform: scale(1); opacity: 1; } }

.lightbox__fechar {
  position: absolute; top: 1.25rem; right: 1.25rem;
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 50%;
  color: rgba(255,255,255,0.7); cursor: pointer; padding: 0.5rem; line-height: 0;
  transition: color var(--transicao), background var(--transicao), box-shadow var(--transicao);
  backdrop-filter: blur(10px);
}
.lightbox__fechar:hover { color: #fff; background: rgba(255,255,255,0.12); box-shadow: 0 0 18px rgba(255,255,255,0.1); }
.lightbox__fechar svg { width: 1.75rem; height: 1.75rem; }

.lightbox__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.7); cursor: pointer; padding: 0.85rem; line-height: 0;
  border-radius: 999px; backdrop-filter: blur(10px);
  transition: background var(--transicao), color var(--transicao), box-shadow var(--transicao), transform var(--transicao);
}
.lightbox__nav:hover { background: rgba(59,130,246,0.15); color: #fff; box-shadow: var(--sombra-neon); transform: translateY(-50%) scale(1.08); }
.lightbox__nav svg { width: 1.5rem; height: 1.5rem; }
.lightbox__nav--prev { left: 1rem; }
.lightbox__nav--next { right: 1rem; }

.lightbox__contador {
  position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%);
  font-size: 0.72rem; letter-spacing: 0.2em; color: rgba(255,255,255,0.38);
  font-family: 'Montserrat', sans-serif;
}

/* ══ CONTATO — glassmorphism ══ */
.contato { position: relative; overflow: hidden; padding-top: 3.5rem; padding-bottom: 3.5rem; border-radius: 0 0 var(--raio-hero) var(--raio-hero); text-align: center; }
.contato__bg { position: absolute; inset: 0; background-image: url('../assets/images/footer-bg.jpg'); background-size: cover; background-position: top center; transform: scale(1.08); opacity: 0.16; z-index: 0; }
.contato__video-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.58;
  filter: saturate(1.12) contrast(1.12);
  transform: scale(1.08);
  pointer-events: none;
}
.contato::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(180deg, rgba(4,3,8,0.34), rgba(4,3,8,0.66)),
    radial-gradient(circle at 50% 18%, rgba(168,85,247,0.17), transparent 52%);
  pointer-events: none;
}
.contato__conteudo { position: relative; z-index: 3; max-width: 600px; margin: 0 auto; }

.contato-item { opacity: 0; transform: translateY(28px) scale(0.96); transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1); }
.contato-item.entrou { opacity: 1; transform: translateY(0) scale(1); }
.contato-item:nth-child(1) { transition-delay: 0.00s; }
.contato-item:nth-child(2) { transition-delay: 0.14s; }
.contato-item:nth-child(3) { transition-delay: 0.28s; }
.contato-item:nth-child(4) { transition-delay: 0.42s; }

.contato__email {
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 1rem 1.75rem; border-radius: 999px;
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  font-size: 1rem; font-weight: 500; margin-bottom: 2.25rem;
  transition: background var(--transicao), transform var(--transicao), box-shadow var(--transicao);
}
.contato__email:hover { background: rgba(59,130,246,0.1); transform: scale(1.04); box-shadow: var(--sombra-neon); }
.contato__email svg { width: 1.25rem; height: 1.25rem; stroke: var(--cor-primaria); fill: none; flex-shrink: 0; transition: filter var(--transicao); }
.contato__email:hover svg { filter: drop-shadow(0 0 6px rgba(168,85,247,0.8)); }

.contato__redes { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-bottom: 2.5rem; }

.card-rede {
  display: flex; flex-direction: column; align-items: center; gap: 0.6rem;
  padding: 1.5rem 1.25rem; min-width: 130px;
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--raio-card); font-size: 0.82rem; font-weight: 500;
  color: var(--cor-texto-suave);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  transition: background var(--transicao), transform var(--transicao), box-shadow var(--transicao), color var(--transicao), border-color var(--transicao);
}
.card-rede:hover { background: rgba(59,130,246,0.1); border-color: rgba(59,130,246,0.28); transform: translateY(-5px) scale(1.04); box-shadow: var(--sombra-neon); color: var(--cor-texto); }
.card-rede svg { width: 2rem; height: 2rem; fill: var(--cor-primaria); transition: transform var(--transicao), filter var(--transicao); }
.card-rede:hover svg { transform: scale(1.18); filter: drop-shadow(0 0 8px rgba(59,130,246,0.7)); }

/* ══ BOTÃO DOWNLOAD — pulsante + mini equalizador ══ */
.btn-download-wrap { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; }

.btn-download {
  display: inline-flex; align-items: center; gap: 0.65rem;
  padding: 1.15rem 2.75rem; border-radius: 999px;
  background: linear-gradient(135deg, var(--cor-primaria) 0%, #1d4ed8 100%);
  color: #fff; font-size: 0.82rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.18em;
  transition: transform var(--transicao), box-shadow var(--transicao);
  animation: pulsarBtn 2.4s ease-in-out infinite;
  position: relative;
}
.btn-download::before {
  content: ''; position: absolute; inset: -5px;
  border-radius: 999px; border: 1.5px solid rgba(59,130,246,0.5);
  animation: pulsarAnel 2.4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes pulsarBtn {
  0%, 100% { box-shadow: 0 8px 30px rgba(59,130,246,0.4), 0 0 0 0 rgba(59,130,246,0.2); }
  50%       { box-shadow: 0 12px 48px rgba(59,130,246,0.65), 0 0 0 12px rgba(59,130,246,0); }
}
@keyframes pulsarAnel {
  0%, 100% { transform: scale(1);    opacity: 0.55; }
  50%       { transform: scale(1.07); opacity: 0; }
}
.btn-download:hover { transform: scale(1.05); box-shadow: var(--sombra-neon-forte); animation-play-state: paused; }
.btn-download svg { width: 1.1rem; height: 1.1rem; stroke: currentColor; fill: none; flex-shrink: 0; }

/* mini equalizador */
.mini-eq { display: flex; align-items: flex-end; gap: 4px; height: 26px; opacity: 0.55; }
.mini-eq span {
  display: block; width: 4px; border-radius: 3px 3px 0 0;
  background: linear-gradient(to top, var(--cor-primaria), rgba(59,130,246,0.35));
  animation: barraEqMini 0.9s ease-in-out infinite alternate; transform-origin: bottom;
}
.mini-eq span:nth-child(1) { height: 10px; animation-duration: 0.65s; animation-delay: 0.00s; }
.mini-eq span:nth-child(2) { height: 22px; animation-duration: 0.50s; animation-delay: 0.08s; }
.mini-eq span:nth-child(3) { height: 16px; animation-duration: 0.75s; animation-delay: 0.16s; }
.mini-eq span:nth-child(4) { height: 26px; animation-duration: 0.55s; animation-delay: 0.04s; }
.mini-eq span:nth-child(5) { height: 12px; animation-duration: 0.70s; animation-delay: 0.20s; }
.mini-eq span:nth-child(6) { height: 20px; animation-duration: 0.45s; animation-delay: 0.12s; }
.mini-eq span:nth-child(7) { height: 18px; animation-duration: 0.80s; animation-delay: 0.00s; }
.mini-eq span:nth-child(8) { height: 8px;  animation-duration: 0.60s; animation-delay: 0.18s; }

@keyframes barraEqMini {
  from { transform: scaleY(0.2); opacity: 0.4; }
  to   { transform: scaleY(1);   opacity: 1; }
}

/* ══ BOTÃO FIXO "CONTRATAR" — só mobile ══ */
.btn-contratar-fixo {
  display: none; position: fixed; bottom: 1.5rem; right: 1.25rem; z-index: 1000;
  background: linear-gradient(135deg, var(--cor-primaria) 0%, #1d4ed8 100%);
  color: #fff; font-family: 'Montserrat', sans-serif; font-size: 0.72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.14em;
  padding: 0.8rem 1.4rem; border-radius: 999px; border: none; cursor: pointer;
  text-decoration: none; align-items: center; gap: 0.5rem;
  box-shadow: 0 4px 20px rgba(59,130,246,0.45), 0 2px 8px rgba(0,0,0,0.5);
  transition: transform var(--transicao), box-shadow var(--transicao), opacity 0.4s ease;
  opacity: 0; transform: translateY(16px);
}
.btn-contratar-fixo.visivel { opacity: 1; transform: translateY(0); }
.btn-contratar-fixo:hover { transform: translateY(-2px); box-shadow: var(--sombra-neon-forte); }
.btn-contratar-fixo svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 2; flex-shrink: 0; }

@media (max-width: 640px) { .btn-contratar-fixo { display: flex; } }

/* ══ RODAPÉ ══ */
.rodape { padding: 1.5rem 1rem 2rem; text-align: center; }
.rodape__marca { font-size: 0.75rem; color: var(--cor-texto-suave); letter-spacing: 0.05em; margin-bottom: 0.75rem; }
.rodape__links { display: flex; justify-content: center; gap: 1.25rem; font-size: 0.72rem; color: var(--cor-texto-suave); flex-wrap: wrap; }
.rodape__links a { transition: color var(--transicao); }
.rodape__links a:hover { color: var(--cor-primaria); }
.rodape__sep { opacity: 0.3; }

/* ══ ANIMAÇÕES DE SCROLL ══ */
.animar {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: flat;
}
.animar.visivel {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  will-change: auto;
}
.delay-1 { transition-delay: 0.10s; }
.delay-2 { transition-delay: 0.20s; }
.delay-3 { transition-delay: 0.30s; }
.delay-4 { transition-delay: 0.40s; }


/* ══ LOADER ══ */
.loader {
  position: fixed; inset: 0; z-index: 99999; background: #000;
  display: flex; align-items: center; justify-content: center; pointer-events: none;
  transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.6s;
}
.loader.saiu { opacity: 0; visibility: hidden; }
.loader__inner { display: flex; flex-direction: column; align-items: center; gap: 2rem; }
.loader__nome {
  font-family: 'Montserrat', sans-serif; font-size: clamp(1rem, 4vw, 1.6rem);
  font-weight: 700; letter-spacing: 0.38em; text-transform: uppercase;
  background: linear-gradient(135deg, #fff 0%, var(--cor-primaria) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  animation: loaderNomeEntrar 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
  filter: drop-shadow(0 0 20px rgba(59,130,246,0.4));
}
@keyframes loaderNomeEntrar { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }

.loader__eq { display: flex; align-items: flex-end; gap: 5px; height: 48px; animation: loaderEqEntrar 0.4s 0.3s ease both; }
@keyframes loaderEqEntrar { from { opacity: 0; } to { opacity: 1; } }
.loader__eq span {
  display: block; width: 5px; border-radius: 3px 3px 0 0;
  background: linear-gradient(to top, var(--cor-primaria), rgba(59,130,246,0.3));
  animation: barraEq 0.9s ease-in-out infinite alternate; transform-origin: bottom;
}
.loader__eq span:nth-child(1)  { height: 14px; animation-duration: 0.70s; animation-delay: 0.00s; }
.loader__eq span:nth-child(2)  { height: 32px; animation-duration: 0.55s; animation-delay: 0.08s; }
.loader__eq span:nth-child(3)  { height: 22px; animation-duration: 0.80s; animation-delay: 0.16s; }
.loader__eq span:nth-child(4)  { height: 44px; animation-duration: 0.60s; animation-delay: 0.04s; }
.loader__eq span:nth-child(5)  { height: 18px; animation-duration: 0.75s; animation-delay: 0.20s; }
.loader__eq span:nth-child(6)  { height: 38px; animation-duration: 0.50s; animation-delay: 0.12s; }
.loader__eq span:nth-child(7)  { height: 28px; animation-duration: 0.85s; animation-delay: 0.00s; }
.loader__eq span:nth-child(8)  { height: 16px; animation-duration: 0.65s; animation-delay: 0.18s; }
.loader__eq span:nth-child(9)  { height: 40px; animation-duration: 0.58s; animation-delay: 0.06s; }
.loader__eq span:nth-child(10) { height: 24px; animation-duration: 0.72s; animation-delay: 0.14s; }
.loader__eq span:nth-child(11) { height: 36px; animation-duration: 0.62s; animation-delay: 0.10s; }
.loader__eq span:nth-child(12) { height: 12px; animation-duration: 0.78s; animation-delay: 0.22s; }

@keyframes barraEq { from { transform: scaleY(0.25); opacity: 0.5; } to { transform: scaleY(1); opacity: 1; } }

/* ══ RESPONSIVO ══ */
@media (max-width: 480px) {
  .hero                { margin-top: 0.5rem; }
  .hero__logo          { max-width: 260px; }
  .secao-titulo        { letter-spacing: 0.3em; }
  .player-audio iframe { height: 240px; }
  .lightbox__nav--prev { left: 0.25rem; }
  .lightbox__nav--next { right: 0.25rem; }
  .bio__conteudo       { padding: 2rem 1.25rem; }
}
@media (min-width: 640px) {
  .hero                { margin-top: 2rem; }
  .hero__logo          { max-width: 400px; }
  .player-audio iframe { height: 360px; }
}

/* ============================================================
   Upgrade premium opcional — micro efeitos visuais refinados
   ============================================================ */
.hero {
  --hero-glow-x: 50%;
  --hero-glow-y: 32%;
  --hero-glow-opacity: 0.42;
  isolation: isolate;
}

.hero::before {
  content: '';
  position: absolute;
  inset: -18%;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(circle at var(--hero-glow-x) var(--hero-glow-y), rgba(59,130,246,var(--hero-glow-opacity)) 0%, rgba(59,130,246,0.12) 18%, transparent 42%),
    linear-gradient(115deg, transparent 0%, rgba(255,255,255,0.04) 38%, rgba(59,130,246,0.10) 50%, transparent 64%);
  mix-blend-mode: screen;
  opacity: 0.75;
  transform: translate3d(0,0,0);
  animation: heroLightLeak 8s ease-in-out infinite alternate;
}

.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  border-radius: inherit;
  background-image:
    radial-gradient(circle at 50% 15%, transparent 0 36%, rgba(0,0,0,0.20) 78%, rgba(0,0,0,0.58) 100%),
    repeating-radial-gradient(circle at 50% 50%, rgba(255,255,255,0.018) 0 1px, transparent 1px 4px);
  opacity: 0.5;
}

.hero__conteudo,
.hero__scroll,
.hero__particulas { z-index: 3; }

.hero__logo {
  filter: drop-shadow(0 12px 28px rgba(0,0,0,0.35));
}
.hero__logo.entrou {
  animation: logoBreathing 5.5s ease-in-out 1.2s infinite;
}

.hero__redes a,
.link-plataforma,
.card-rede,
.galeria__item,
.player-video,
.player-audio {
  transform-style: preserve-3d;
  backface-visibility: hidden;
}

.link-plataforma,
.card-rede,
.btn-download,
.btn-contratar-fixo {
  overflow: hidden;
}

.link-plataforma::after,
.card-rede::after,
.btn-download::after,
.btn-contratar-fixo::after {
  content: '';
  position: absolute;
  inset: -55% -35%;
  background: linear-gradient(115deg, transparent 35%, rgba(255,255,255,0.24) 48%, transparent 62%);
  transform: translateX(-120%) rotate(8deg);
  opacity: 0;
  pointer-events: none;
}

.link-plataforma:hover::after,
.card-rede:hover::after,
.btn-download:hover::after,
.btn-contratar-fixo:hover::after {
  animation: brilhoScan 0.9s ease forwards;
}

.btn-download::after {
  animation: brilhoScanLoop 3.8s ease-in-out infinite;
  opacity: 1;
}

.secao-titulo {
  text-shadow: 0 0 22px rgba(59,130,246,0.14);
}

.secao-titulo::after {
  box-shadow: 0 0 18px rgba(59,130,246,0.45);
}

.player-video,
.player-audio,
.bio__texto,
.card-rede,
.galeria__item {
  position: relative;
}

.player-video::before,
.player-audio::before,
.galeria__item::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(145deg, rgba(255,255,255,0.12), transparent 34%, rgba(59,130,246,0.08));
  opacity: 0.38;
  z-index: 2;
}

.galeria__item img {
  will-change: transform;
}
.galeria__item:hover img {
  transform: scale(1.08) translateZ(0);
}

.premium-touch {
  transition: transform 0.18s cubic-bezier(0.22,1,0.36,1), box-shadow 0.18s ease;
}

.toque-luz {
  position: fixed;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: rgba(59,130,246,0.65);
  box-shadow: 0 0 22px rgba(59,130,246,0.9), 0 0 44px rgba(59,130,246,0.4);
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%) scale(0.2);
  opacity: 0.16;
  animation: toqueLuz 0.65s ease-out forwards;
}

@keyframes heroLightLeak {
  from { transform: translate3d(-2%, -1%, 0) scale(1); opacity: 0.55; }
  to   { transform: translate3d(2%, 1%, 0) scale(1.04); opacity: 0.88; }
}

@keyframes logoBreathing {
  0%, 100% { transform: translate3d(0,0,0) scale(1); filter: drop-shadow(0 12px 28px rgba(0,0,0,0.35)); }
  50%      { transform: translate3d(0,-5px,0) scale(1.018); filter: drop-shadow(0 18px 34px rgba(59,130,246,0.16)); }
}

@keyframes brilhoScan {
  0%   { opacity: 0; transform: translateX(-120%) rotate(8deg); }
  22%  { opacity: 1; }
  100% { opacity: 0; transform: translateX(120%) rotate(8deg); }
}

@keyframes brilhoScanLoop {
  0%, 58% { opacity: 0; transform: translateX(-120%) rotate(8deg); }
  70%     { opacity: 1; }
  100%    { opacity: 0; transform: translateX(120%) rotate(8deg); }
}

@keyframes toqueLuz {
  to { transform: translate(-50%, -50%) scale(8); opacity: 0; }
}

@media (hover: none) {
  .link-plataforma:active::after,
  .card-rede:active::after,
  .btn-download:active::after,
  .btn-contratar-fixo:active::after {
    animation: brilhoScan 0.75s ease forwards;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero::before,
  .hero__logo.entrou,
  .btn-download::after {
    animation: none !important;
  }
}


/* =========================================================
   AMBIENT LOOP PREMIUM — movimento sutil para página viva
   ========================================================= */
.alive-loop-layer {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
  contain: layout paint;
}

.sound-orbit {
  position: absolute;
  border-radius: 999px;
  border: 1px solid rgba(0, 210, 255, 0.18);
  box-shadow: 0 0 26px rgba(0, 210, 255, 0.12), inset 0 0 20px rgba(0, 210, 255, 0.05);
  opacity: 0.34;
  transform: translate3d(0,0,0);
  animation: orbitBreath 7s ease-in-out infinite;
}

.orbit-one {
  width: 180px;
  height: 180px;
  right: -70px;
  top: 18vh;
}

.orbit-two {
  width: 110px;
  height: 110px;
  left: -42px;
  top: 54vh;
  animation-delay: -2.2s;
}

.orbit-three {
  width: 240px;
  height: 240px;
  right: -120px;
  bottom: 8vh;
  animation-delay: -4s;
  opacity: 0.22;
}

@keyframes orbitBreath {
  0%, 100% {
    transform: translate3d(0,0,0) scale(0.96);
    opacity: 0.18;
  }
  50% {
    transform: translate3d(0,-12px,0) scale(1.06);
    opacity: 0.42;
  }
}

.floating-eq {
  position: absolute;
  display: flex;
  align-items: end;
  gap: 4px;
  height: 22px;
  opacity: 0.48;
  filter: drop-shadow(0 0 10px rgba(0, 210, 255, 0.35));
  transform: translate3d(0,0,0);
}

.eq-top {
  right: 22px;
  top: 118px;
}

.floating-eq i {
  display: block;
  width: 3px;
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(0,210,255,0.55));
  animation: ambientEq 1.1s ease-in-out infinite;
}

.floating-eq i:nth-child(2) { animation-delay: .12s; }
.floating-eq i:nth-child(3) { animation-delay: .24s; }
.floating-eq i:nth-child(4) { animation-delay: .36s; }
.floating-eq i:nth-child(5) { animation-delay: .48s; }

@keyframes ambientEq {
  0%, 100% { height: 6px; opacity: .45; }
  50% { height: 22px; opacity: 1; }
}

.floating-note {
  position: absolute;
  font-size: 18px;
  color: rgba(255,255,255,0.42);
  text-shadow: 0 0 18px rgba(0, 210, 255, 0.45);
  opacity: 0;
  transform: translate3d(0,0,0);
  animation: floatNote 9s linear infinite;
}

.note-one {
  left: 9vw;
  top: 74vh;
}

.note-two {
  right: 11vw;
  top: 62vh;
  animation-delay: -3s;
}

.note-three {
  left: 78vw;
  top: 84vh;
  animation-delay: -5.8s;
}

@keyframes floatNote {
  0% {
    transform: translate3d(0, 24px, 0) scale(.85) rotate(-8deg);
    opacity: 0;
  }
  18% { opacity: .42; }
  65% { opacity: .28; }
  100% {
    transform: translate3d(0, -92px, 0) scale(1.08) rotate(10deg);
    opacity: 0;
  }
}

/* brilho vivo sutil nos blocos principais */
.btn, button, .card, .social-card, .link-card, .download-btn, .presskit-btn {
  position: relative;
  overflow: hidden;
}

.btn::after,
button::after,
.card::after,
.social-card::after,
.link-card::after,
.download-btn::after,
.presskit-btn::after {
  content: "";
  position: absolute;
  inset: -80% auto -80% -120%;
  width: 52%;
  transform: rotate(18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
  animation: premiumScan 5.8s ease-in-out infinite;
  pointer-events: none;
}

@keyframes premiumScan {
  0%, 62% { left: -120%; opacity: 0; }
  72% { opacity: .75; }
  100% { left: 130%; opacity: 0; }
}

/* respeita usuários com redução de movimento */
@media (prefers-reduced-motion: reduce) {
  .sound-orbit,
  .floating-eq i,
  .floating-note,
  .btn::after,
  button::after,
  .card::after,
  .social-card::after,
  .link-card::after,
  .download-btn::after,
  .presskit-btn::after {
    animation: none !important;
  }
}

/* ajuste mobile: movimento presente, mas leve */
@media (max-width: 768px) {
  .alive-loop-layer {
    z-index: 0;
  }

  .floating-note {
    font-size: 16px;
  }

  .orbit-three {
    display: none;
  }
}


.touch-sound-pulse {
  position: fixed;
  width: 12px;
  height: 12px;
  margin-left: -6px;
  margin-top: -6px;
  border-radius: 999px;
  border: 1px solid rgba(0, 210, 255, 0.52);
  box-shadow: 0 0 22px rgba(0, 210, 255, 0.35);
  animation: touchPulse .85s ease-out forwards;
  pointer-events: none;
}

@keyframes touchPulse {
  from {
    transform: translate3d(0,0,0) scale(.7);
    opacity: .7;
  }
  to {
    transform: translate3d(0,0,0) scale(5.8);
    opacity: 0;
  }
}


/* =========================================================
   BIO REFEITA DO ZERO — limpa, premium e sem retângulo/fade
   ========================================================= */
.bio-clean {
  position: relative;
  overflow: hidden;
  padding: 4rem 1.35rem 4.2rem;
  background:
    radial-gradient(circle at 50% 0%, rgba(59,130,246,0.08), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,0.015), transparent 55%);
}

.bio-clean::before,
.bio-clean::after,
.bio-clean .bio__bg,
.bio-clean__text-wrap::before,
.bio-clean__text-wrap::after,
.bio-clean__texto::before,
.bio-clean__texto::after {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
  background: none !important;
  box-shadow: none !important;
}

.bio-clean__conteudo {
  position: relative;
  z-index: 2;
  max-width: 650px;
  margin: 0 auto;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.bio-clean__idiomas {
  margin: 2rem auto 2.4rem;
}

.bio-clean__text-wrap {
  position: relative;
  padding: 0;
  margin: 0 auto;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.bio-clean__texto {
  position: relative;
  z-index: 1;
  display: none;
  padding: 0 !important;
  margin: 0;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  color: rgba(235,238,245,0.72);
  font-size: 0.96rem;
  line-height: 1.95;
  letter-spacing: 0.01em;
  text-align: left;
  white-space: pre-line;
}

.bio-clean__texto.visivel {
  display: block;
}

@media (max-width: 520px) {
  .bio-clean {
    padding: 3.4rem 1.25rem 3.8rem;
  }

  .bio-clean__texto {
    font-size: 0.93rem;
    line-height: 1.9;
  }

  .bio-clean__idiomas {
    gap: 0.8rem;
    margin-bottom: 2rem;
  }
}


/* ===== CONTACT BG VISIBILITY BOOST ===== */
.contato__bg,
.contact-bg,
.contato-bg,
.contato::before {
  opacity: 0.18 !important;
}


/* ===== RED EQUALIZER BOOST ===== */
.loader__eq span,
.floating-eq i,
.equalizer span,
.audio-bars span,
.eq-bar {
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.95) 0%,
    rgba(255,80,80,0.95) 35%,
    rgba(255,0,55,1) 100%
  ) !important;

  box-shadow:
    0 0 10px rgba(255,0,55,0.75),
    0 0 22px rgba(255,0,55,0.45),
    0 0 38px rgba(255,0,55,0.25) !important;
}

/* brilho pulsando */
.floating-eq,
.equalizer,
.audio-bars {
  filter:
    drop-shadow(0 0 10px rgba(255,0,55,0.6))
    drop-shadow(0 0 22px rgba(255,0,55,0.28));
}


/* ===== CONTACT CTA EQUALIZER RED ===== */
.download-eq,
.download-eq span,
.presskit-eq,
.presskit-eq span,
.cta-eq,
.cta-eq span {
  color: #ff1744 !important;
}

.download-eq span,
.presskit-eq span,
.cta-eq span,
.download-btn + * span,
.presskit-btn + * span {
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.95) 0%,
    rgba(255,70,70,0.95) 30%,
    rgba(255,0,55,1) 100%
  ) !important;

  box-shadow:
    0 0 12px rgba(255,0,55,0.9),
    0 0 24px rgba(255,0,55,0.55),
    0 0 40px rgba(255,0,55,0.3) !important;

  border-radius: 999px;
}

/* glow abaixo do botão */
.download-btn + *,
.presskit-btn + * {
  filter:
    drop-shadow(0 0 10px rgba(255,0,55,0.7))
    drop-shadow(0 0 20px rgba(255,0,55,0.4));
}


/* ===== MINI-EQ EXATO ABAIXO DO DOWNLOAD — VERMELHO ===== */
.mini-eq {
  opacity: 0.95 !important;
  filter:
    drop-shadow(0 0 8px rgba(255, 0, 55, 0.85))
    drop-shadow(0 0 18px rgba(255, 0, 55, 0.45)) !important;
}

.mini-eq span {
  background: linear-gradient(
    to top,
    #ff0037 0%,
    #ff1744 55%,
    #ffffff 100%
  ) !important;

  box-shadow:
    0 0 8px rgba(255, 0, 55, 0.95),
    0 0 18px rgba(255, 0, 55, 0.55),
    0 0 30px rgba(255, 0, 55, 0.28) !important;
}


/* ===== FIX JITTER NAS ENTRADAS/FADE DAS SEÇÕES ===== */
.animar,
.contato-item,
.galeria__item {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: flat;
  perspective: none;
}

/* No mobile, o tremor costuma vir do translate + blur + scroll.
   Mantém o fade premium, mas remove o deslocamento que causa jitter. */
@media (max-width: 768px) {
  .animar {
    transform: translate3d(0, 0, 0) !important;
    transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) !important;
  }

  .animar.visivel {
    transform: translate3d(0, 0, 0) !important;
  }
}


/* ===== CONTACT BUTTONS PRELOADED GLASS FIX =====
   Os 4 botões do contato já carregam com blur/glass ativo.
   Evita o efeito estranho de chegar na seção e só então desfocar. */
.contato .contato-item {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
  transition: none !important;
  will-change: auto !important;
}

.contato .contato-item.entrou {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
}

/* reforça que os cards já estejam com glass/blur pronto antes do scroll */
.contato__redes a,
.contato__email {
  backdrop-filter: blur(16px) saturate(130%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(130%) !important;
  transform: translate3d(0, 0, 0);
}


/* =========================================================
   HERO CINEMATIC ZOOM
   ========================================================= */
.hero__cover {
  transform: translate3d(0,0,0) scale(1);
  transform-origin: center center;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transition: transform 0.18s linear;
}


/* ===== STRONGER CINEMATIC HERO ZOOM ===== */
.hero__cover {
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1) !important;
}


/* ===== AJUSTES 2 — GABRIEL FELLIX ===== */
.player-audio iframe {
  min-height: 352px;
}

.loader__eq span,
.floating-eq i,
.equalizer span,
.audio-bars span,
.eq-bar,
.download-eq span,
.presskit-eq span,
.cta-eq span,
.download-btn + * span,
.presskit-btn + * span,
.mini-eq span {
  background: linear-gradient(
    to top,
    #6d28d9 0%,
    #a855f7 55%,
    #f5d0fe 100%
  ) !important;

  box-shadow:
    0 0 8px rgba(168, 85, 247, 0.95),
    0 0 18px rgba(168, 85, 247, 0.60),
    0 0 30px rgba(168, 85, 247, 0.35) !important;
}

.floating-eq,
.equalizer,
.audio-bars,
.download-btn + *,
.presskit-btn + *,
.mini-eq {
  filter:
    drop-shadow(0 0 10px rgba(168, 85, 247, 0.75))
    drop-shadow(0 0 22px rgba(168, 85, 247, 0.42)) !important;
}

.download-eq,
.presskit-eq,
.cta-eq {
  color: #a855f7 !important;
}

/* ===== AJUSTE SEGURO — RIDER TÉCNICO ===== */
.rider__box {
  max-width: 620px;
  margin: 0 auto;
  padding: 1.75rem 1.5rem;
  border-radius: var(--raio-card);
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(168, 85, 247, 0.22);
  box-shadow: var(--sombra-card), 0 0 28px rgba(168, 85, 247, 0.10);
  text-align: center;
}

.rider__box p {
  color: var(--cor-texto-suave);
  font-size: 0.95rem;
  margin-bottom: 1.25rem;
}

.btn-rider {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  min-height: 3rem;
  padding: 0.9rem 1.35rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #7c3aed, #a855f7);
  color: #fff;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  box-shadow: 0 0 24px rgba(168, 85, 247, 0.36);
  transition: transform var(--transicao), box-shadow var(--transicao);
}

.btn-rider:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 0 34px rgba(168, 85, 247, 0.55);
}

.btn-rider svg {
  width: 1rem;
  height: 1rem;
  stroke: currentColor;
  fill: none;
  flex-shrink: 0;
}

@media (max-width: 480px) {
  .player-audio iframe { min-height: 360px; }
  .rider__box { padding: 1.4rem 1rem; }
  .btn-rider { width: 100%; font-size: 0.72rem; }
}


/* ===== AJUSTE FINO — ESPAÇAMENTO MOBILE / FLUXO DE LEITURA ===== */
/* Reduz os espaços mortos entre Biografia > Galeria e Rider > Contato sem alterar a estrutura. */
.bio-clean {
  padding-bottom: 1.35rem !important;
}

section[aria-labelledby="titulo-galeria"] {
  padding: 1.1rem 1.5rem 2rem !important;
}

#titulo-galeria {
  margin-bottom: 1.35rem !important;
}

.rider.secao {
  padding-top: 1.5rem !important;
  padding-bottom: 1.6rem !important;
}

.rider__box {
  padding-top: 1.35rem !important;
  padding-bottom: 1.35rem !important;
}

.contato.secao {
  padding-top: 1.7rem !important;
}

#titulo-contato {
  margin-bottom: 1.35rem !important;
}

.contato__email {
  cursor: pointer;
}

@media (max-width: 640px) {
  .secao-titulo {
    margin-bottom: 1.55rem !important;
  }

  .bio-clean {
    padding-top: 2.1rem !important;
    padding-bottom: 0.9rem !important;
  }

  .bio-clean__conteudo {
    padding-bottom: 0 !important;
  }

  .bio-clean__text-wrap {
    margin-bottom: 0 !important;
  }

  section[aria-labelledby="titulo-galeria"] {
    padding-top: 0.8rem !important;
    padding-bottom: 1.45rem !important;
  }

  #titulo-galeria {
    margin-bottom: 1.05rem !important;
  }

  .galeria {
    margin-top: 0 !important;
  }

  .rider.secao {
    padding-top: 1.05rem !important;
    padding-bottom: 1.05rem !important;
  }

  .rider__box {
    padding: 1.15rem 1rem !important;
  }

  .rider__box p {
    margin-bottom: 0.95rem !important;
  }

  .contato.secao {
    padding-top: 1.05rem !important;
    padding-bottom: 2.2rem !important;
  }

  #titulo-contato {
    margin-bottom: 1.05rem !important;
  }
}

/* ===== BIO BACKGROUND — FIX DEFINITIVO ===== */
.bio.bio-clean {
  position: relative !important;
  overflow: hidden !important;
  background-image:
    linear-gradient(180deg, rgba(5, 3, 10, 0.42), rgba(5, 3, 10, 0.58)),
    radial-gradient(circle at 50% 20%, rgba(168, 85, 247, 0.18), transparent 42%),
    url('../assets/images/bio-bg.webp') !important;
  background-size: cover, cover, cover !important;
  background-position: center, center, center 24% !important;
  background-repeat: no-repeat !important;
  background-color: #07030d !important;
}

.bio.bio-clean .bio-clean__conteudo,
.bio.bio-clean .secao-titulo,
.bio.bio-clean .bio-clean__idiomas,
.bio.bio-clean .bio-clean__text-wrap,
.bio.bio-clean .bio-clean__texto {
  position: relative !important;
  z-index: 2 !important;
}

@media (max-width: 520px) {
  .bio.bio-clean {
    background-image:
      linear-gradient(180deg, rgba(5, 3, 10, 0.34), rgba(5, 3, 10, 0.54)),
      radial-gradient(circle at 50% 16%, rgba(168, 85, 247, 0.20), transparent 46%),
      url('../assets/images/bio-bg.webp') !important;
    background-position: center, center, center top !important;
  }
}

/* ===== BIO BG FINAL: readable + scroll zoom ===== */
.bio.bio-clean {
  --bio-bg-scale: 1.08;
  position: relative !important;
  overflow: hidden !important;
  background: #07030d !important;
  isolation: isolate !important;
}

.bio.bio-clean::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  inset: -8% !important;
  z-index: 0 !important;
  opacity: 0.46 !important;
  background: url('../assets/images/bio-bg.webp') center 22% / cover no-repeat !important;
  transform: scale(var(--bio-bg-scale)) !important;
  transform-origin: center center !important;
  transition: transform 0.18s linear !important;
  will-change: transform !important;
}

.bio.bio-clean::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  opacity: 1 !important;
  background:
    linear-gradient(180deg, rgba(3,2,8,.82) 0%, rgba(3,2,8,.68) 38%, rgba(3,2,8,.86) 100%),
    radial-gradient(circle at 50% 22%, rgba(168,85,247,.20), transparent 48%) !important;
  pointer-events: none !important;
}

.bio.bio-clean .bio-clean__conteudo,
.bio.bio-clean .secao-titulo,
.bio.bio-clean .bio-clean__idiomas,
.bio.bio-clean .bio-clean__text-wrap,
.bio.bio-clean .bio-clean__texto {
  position: relative !important;
  z-index: 2 !important;
}

.bio.bio-clean .bio-clean__texto {
  color: rgba(245, 242, 255, .86) !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.55) !important;
}

.bio-clean[data-bio-expanded="false"] .bio-collapsible {
  max-height: 20rem;
  overflow: hidden;
  -webkit-mask-image: none;
  mask-image: none;
}

.bio-collapsible {
  overflow: visible;
  transition: max-height 0.45s ease;
}

.bio-clean[data-bio-expanded="true"] .bio-collapsible {
  max-height: none;
  overflow: visible;
  -webkit-mask-image: none;
  mask-image: none;
}

.bio-toggle {
  display: inline-flex;
  position: relative;
  z-index: 5;
  align-items: center;
  justify-content: center;
  margin: 1.4rem auto 0;
  padding: 0.7rem 1.25rem;
  border: 1px solid rgba(168, 85, 247, 0.46);
  border-radius: 999px;
  background: rgba(168, 85, 247, 0.13);
  color: #fff;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  box-shadow: 0 0 22px rgba(168, 85, 247, 0.18);
  transition: transform var(--transicao), background var(--transicao), border-color var(--transicao);
}

.bio-toggle:hover,
.bio-toggle:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(168, 85, 247, 0.76);
  background: rgba(168, 85, 247, 0.22);
  outline: none;
}

@media (max-width: 520px) {
  .bio.bio-clean::before {
    inset: -10% !important;
    opacity: 0.38 !important;
    background-position: center top !important;
  }

  .bio.bio-clean::after {
    background:
      linear-gradient(180deg, rgba(3,2,8,.86) 0%, rgba(3,2,8,.72) 42%, rgba(3,2,8,.90) 100%),
      radial-gradient(circle at 50% 18%, rgba(168,85,247,.18), transparent 50%) !important;
  }

  .player-video--local.player-video--aberto {
    width: min(100%, 390px);
  }

  .bio-clean[data-bio-expanded="false"] .bio-collapsible {
    max-height: 23rem;
  }

  .bio-toggle {
    width: 100%;
  }
}

/* Mobile bio reset: no residual background strip after "voltar". */
@media (max-width: 640px) {
  .bio.bio-clean {
    padding-bottom: 0 !important;
    background: #050509 !important;
  }

  .bio.bio-clean::before {
    display: none !important;
    content: none !important;
  }

  .bio.bio-clean::after {
    display: none !important;
    content: none !important;
  }

  .bio-clean__conteudo {
    padding-bottom: 1.25rem !important;
  }

  section[aria-labelledby="titulo-galeria"] {
    margin-top: 0 !important;
    padding-top: 1.15rem !important;
    background: #050509 !important;
  }
}

/* Spotify oficial em roxo, mantendo as curvas originais */
.spotify-icon { color: #9b5cff; }
.hero__redes a[aria-label="Spotify"] .spotify-icon,
.card-rede .spotify-icon { filter: drop-shadow(0 0 10px rgba(155,92,255,.35)); }
