/* Connecting Screens — página de apresentação.
   Tipografia da plataforma (lib/core/theme/app_theme.dart): Poppins nos
   títulos, no máximo w600, e Roboto no corpo e nos rótulos.
   Paleta: o papel e a ameixa da plataforma (lib/core/theme/brand.dart) e as
   duas telas do logo (malva e céu), com a tinta azul-noite do lettering. */
:root {
  color-scheme: light;
  --papel: #F7F6F3;
  --cartao: #FFFFFF;
  --tinta: #0B1024;
  --texto: #3C3F52;
  --suave: #666979;
  --linha: #E2DFD8;
  --ameixa: #8C3573;
  --ameixa-clara: #F4E9F1;
  --malva: #A187A4;
  --ceu: #74B0DA;
  --sala: #0A0F24;
  --sala-texto: #CDD1E0;
  --rodape: #ECEAE4;

  --display: "Poppins", "Roboto", "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --corpo: "Roboto", "Helvetica Neue", Arial, "Noto Sans", sans-serif;

  --g: clamp(16px, 4.2vw, 56px);
  --largura: 1320px;
  --respiro: clamp(4.5rem, 10vw, 9rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--papel);
  color: var(--texto);
  font-family: var(--corpo);
  font-size: clamp(1rem, 0.96rem + 0.25vw, 1.12rem);
  line-height: 1.6;
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
[hidden] { display: none !important; }
h1, h2, h3 { margin: 0; color: var(--tinta); text-wrap: balance; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
em { font-family: var(--display); font-style: italic; font-weight: inherit; }
:lang(zh) em, :lang(ko) em { font-style: normal; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--ceu); outline-offset: 3px; border-radius: 4px; }

.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular {
  position: absolute; left: var(--g); top: -4rem; z-index: 20;
  background: var(--tinta); color: #fff; padding: .6rem 1rem; border-radius: 8px;
  font-family: var(--display); text-decoration: none;
}
.pular:focus { top: 1rem; }

/* Rótulos utilitários */
.rotulo, .sobrelinha, .claquete, .nota, .timecode, .indice-colunas, .folha-semana, .folha-mes {
  font-family: var(--corpo);
  font-size: .74rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.rotulo { color: var(--ameixa); display: flex; align-items: center; gap: .7rem; }
.rotulo::before {
  content: ""; width: 1.6rem; height: .9rem; flex: none;
  border: 2px solid var(--malva); border-right-color: var(--ceu); border-bottom-color: var(--ceu);
  border-radius: 4px;
}
.rotulo--claro { color: var(--ceu); }
.nota { color: var(--suave); text-transform: none; letter-spacing: .01em; font-size: .78rem; line-height: 1.5; }
.nota--clara { color: var(--sala-texto); }

/* Botões */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  background: var(--ameixa); color: #fff;
  font-family: var(--display); font-weight: 500; font-size: 1rem; line-height: 1;
  padding: 1rem 1.5rem; border-radius: 999px; text-decoration: none;
  transition: background .2s ease, transform .2s ease;
}
.botao:hover { background: #74285F; }
.botao:active { transform: translateY(1px); }
.botao--pequeno { padding: .7rem 1.1rem; font-size: .92rem; }
.link-seta {
  font-family: var(--display); font-weight: 500; color: var(--tinta);
  text-decoration: none; display: inline-flex; align-items: center; gap: .45rem;
  border-bottom: 2px solid var(--malva); padding-block: .2rem;
}
.link-seta::after { content: "→"; transition: transform .2s ease; }
.link-seta:hover::after { transform: translateX(4px); }

/* Topo */
.topo {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 10;
  background: color-mix(in srgb, var(--papel) 90%, transparent);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-bottom: 1px solid transparent; transition: border-color .2s ease;
}
.topo.rolou { border-bottom-color: var(--linha); }
.topo-in {
  max-width: var(--largura); margin: 0 auto; padding: .8rem var(--g);
  display: flex; align-items: center; gap: 2rem;
}
.marca img { height: 34px; width: auto; }
.nav { display: none; gap: 1.8rem; margin-left: auto; }
.nav a {
  font-family: var(--display); font-size: .95rem; color: var(--texto);
  text-decoration: none; padding-block: .3rem; border-bottom: 1px solid transparent;
}
.nav a:hover { color: var(--tinta); border-bottom-color: var(--tinta); }
.topo-acoes { display: flex; align-items: center; gap: .8rem; margin-left: auto; }
.nav + .topo-acoes { margin-left: 0; }
.idioma select {
  font-family: var(--corpo); font-size: .8rem; color: var(--tinta);
  background: transparent; border: 1px solid var(--linha); border-radius: 999px;
  padding: .5rem .8rem; cursor: pointer;
}
@media (min-width: 900px) { .nav { display: flex; } }
@media (max-width: 420px) { .marca img { height: 26px; } .topo-in { gap: .8rem; } }

/* Abertura */
.abertura {
  max-width: var(--largura); margin: 0 auto;
  padding: clamp(2.5rem, 6vw, 5.5rem) var(--g) clamp(3rem, 6vw, 5rem);
  display: grid; gap: clamp(2.5rem, 5vw, 4rem);
}
.abertura-texto { display: grid; gap: 1.6rem; align-content: start; }
.sobrelinha { color: var(--suave); }
.titulo-mestre {
  font-family: var(--display);
  font-weight: 600;
  font-size: clamp(2.6rem, 1.1rem + 5.8vw, 6.4rem);
  line-height: 1;
  letter-spacing: -.035em;
}
.titulo-mestre em { color: var(--ameixa); font-weight: 500; }
.abertura-lead { max-width: 36rem; font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); }
.acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 1.8rem; }

.telas {
  margin: 0; position: relative;
  padding: 2rem 0 0;
  perspective: 1400px;
}
.tela {
  position: relative; background: var(--cartao);
  border: 3px solid var(--malva); border-radius: 22px; padding: 7px;
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.tela img { border-radius: 14px; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.tela--a { width: 86%; transform: rotateY(12deg); transform-origin: left center; }
.tela--b {
  width: 54%; margin: -7% 0 0 auto; border-color: var(--ceu);
  transform: rotateY(-14deg); transform-origin: right center;
}
.telas:hover .tela { transform: none; }
.claquete {
  position: absolute; top: -1.9rem; left: .3rem; color: var(--tinta);
  display: inline-flex; gap: .5rem; align-items: center;
}
.tela--b .claquete { left: auto; right: .3rem; top: auto; bottom: -1.9rem; }
.claquete::before { content: ""; width: .55rem; height: .55rem; background: var(--malva); border-radius: 2px; }
.tela--b .claquete::before { background: var(--ceu); }
.timecode {
  position: absolute; top: 1.1rem; right: 1.1rem;
  background: rgba(8, 10, 22, .78); color: #fff;
  padding: .3rem .55rem; border-radius: 6px; letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
}
.timecode::before { content: "●"; color: #E0584A; margin-right: .4rem; font-size: .6rem; vertical-align: .1em; }
.legenda {
  position: absolute; left: 1.1rem; bottom: 1.1rem;
  width: max-content; max-width: 50%; text-align: left;
  background: rgba(8, 10, 22, .8); color: #fff; text-align: center;
  font-family: var(--display); font-weight: 500; font-size: clamp(.8rem, .7rem + .4vw, 1.02rem);
  line-height: 1.3; padding: .4rem .8rem; border-radius: 6px;
  display: flex; gap: .6rem; align-items: baseline;
}
.legenda-idioma { font-family: var(--corpo); font-size: .68rem; color: var(--ceu); letter-spacing: .08em; }
.legenda [data-legenda-texto] { transition: opacity .35s ease; }
.legenda.trocando [data-legenda-texto] { opacity: 0; }
.ponte {
  position: absolute; left: -1.7rem; top: 55%; translate: 0 -50%; z-index: 1;
  width: 3.4rem; height: 3.4rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--tinta); color: #fff; font-size: 1.35rem;
  box-shadow: 0 0 0 6px var(--papel);
}
.telas .nota { margin-top: 2.8rem; max-width: 26rem; }

@media (min-width: 960px) {
  .abertura { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); align-items: center; }
  .telas { margin-right: calc(var(--g) * -.4); }
}

/* Faixa dos festivais */
.faixa {
  background: var(--cartao); border-block: 1px solid var(--linha);
  padding-block: 1.3rem;
}
.faixa-janela { overflow: hidden; }
.faixa-trilho {
  display: flex; align-items: center; width: max-content;
  animation: desliza var(--duracao-faixa, 40s) linear infinite;
}
.faixa:hover .faixa-trilho, .faixa:focus-within .faixa-trilho { animation-play-state: paused; }
.faixa-trilho li {
  display: flex; align-items: center; padding-inline: clamp(1.4rem, 3vw, 2.6rem);
  position: relative;
}
.faixa-trilho li + li::before {
  content: ""; position: absolute; left: -.3rem; width: .6rem; height: .6rem;
  border-radius: 2px; background: var(--malva);
}
.faixa-trilho li:nth-child(even)::before { background: var(--ceu); }
.faixa-logo img {
  height: clamp(36px, 4vw, 52px); width: auto; max-width: 180px; object-fit: contain;
  filter: grayscale(1); opacity: .8; transition: filter .3s ease, opacity .3s ease;
}
.faixa-logo:hover img { filter: none; opacity: 1; }
.faixa-embreve {
  font-family: var(--display); font-style: italic; font-weight: 400;
  font-size: clamp(1.1rem, .9rem + 1vw, 1.7rem); color: var(--tinta); white-space: nowrap;
}
/* Sem festivais (ou sem rede): só o "em breve", parado e centrado. */
.faixa-trilho--parado { animation: none; width: auto; justify-content: center; flex-wrap: wrap; }
.faixa-trilho--parado li::before { display: none; }
@keyframes desliza { to { transform: translateX(-50%); } }

/* Seções */
.secao { max-width: var(--largura); margin: 0 auto; padding: var(--respiro) var(--g); }
.titulo-secao {
  font-family: var(--display); font-weight: 600;
  font-size: clamp(2rem, 1.2rem + 3vw, 3.9rem);
  line-height: 1.08; letter-spacing: -.025em;
}
.titulo-secao em { color: var(--ameixa); font-weight: 500; }
.texto-secao { max-width: 38rem; }

/* A plataforma */
.plataforma { display: grid; gap: 2rem; }
.declaracao {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(1.7rem, 1.1rem + 2.4vw, 3.2rem);
  line-height: 1.18; letter-spacing: -.02em;
}
.declaracao em { color: var(--ameixa); }
.plataforma-texto { max-width: 36rem; }
.pilares { display: grid; gap: 2.4rem; margin-top: 2rem; }
.pilares h3 {
  font-family: var(--display); font-weight: 600; font-size: 1.3rem; letter-spacing: -.01em;
  margin-bottom: .6rem;
}
.pilares li { border-top: 2px solid var(--tinta); padding-top: 1.1rem; max-width: 24rem; }
@media (min-width: 900px) {
  .plataforma { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 1.5rem; }
  .plataforma .rotulo { grid-column: 1 / 4; }
  .declaracao { grid-column: 3 / 12; }
  .plataforma-texto { grid-column: 7 / 12; }
  .pilares { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; }
  .pilares li:nth-child(2) { margin-top: 3.5rem; }
  .pilares li:nth-child(3) { margin-top: 7rem; }
}

/* Para quem */
.para-quem { padding-top: 0; }
.para-quem-cabeca { display: grid; gap: 1.4rem; margin-bottom: 3rem; }
@media (min-width: 900px) {
  .para-quem-cabeca { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); column-gap: 3rem; align-items: end; }
  .para-quem-cabeca .rotulo { grid-column: 1 / -1; }
}
.indice { display: grid; gap: 2rem; }
.indice-colunas {
  display: grid; grid-template-columns: minmax(0, 1fr) 2.5rem minmax(0, 1fr);
  color: var(--suave); padding-bottom: .8rem;
}
.indice-colunas span:last-child { grid-column: 3; }
.indice-lista li {
  display: grid; grid-template-columns: minmax(0, 1fr) 2.5rem minmax(0, 1fr); align-items: baseline;
  gap: .4rem; padding: 1.05rem .2rem; border-top: 1px solid var(--linha);
  cursor: default; transition: background .25s ease;
}
.indice-lista li:last-child { border-bottom: 1px solid var(--linha); }
.quero {
  font-family: var(--display); font-weight: 600; color: var(--tinta);
  font-size: clamp(1.1rem, .9rem + 1vw, 1.7rem); letter-spacing: -.02em; line-height: 1.15;
  transition: color .25s ease;
}
.seta { font-family: var(--display); color: var(--malva); font-size: 1.3rem; transition: transform .25s ease, color .25s ease; }
.contraparte { font-family: var(--corpo); font-style: italic; color: var(--suave); font-size: clamp(1rem, .9rem + .4vw, 1.2rem); }
:lang(zh) .contraparte, :lang(ko) .contraparte { font-style: normal; }
.indice-lista li.ativo { background: var(--cartao); }
.indice-lista li.ativo .quero { color: var(--ameixa); }
.indice-lista li.ativo .seta { color: var(--ceu); transform: translateX(6px); }
.indice-lista li.ativo .seta--volta { transform: rotate(90deg); }
.indice-tela {
  margin: 0; order: -1; background: var(--cartao);
  border: 3px solid var(--ceu); border-radius: 22px; padding: 7px;
}
.indice-tela img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 14px; transition: opacity .3s ease; }
.indice-tela img.trocando { opacity: .15; }
@media (min-width: 900px) {
  .indice { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); column-gap: 3.5rem; align-items: start; }
  .indice-colunas { grid-column: 1; }
  .indice-lista { grid-column: 1; }
  .indice-tela { order: 0; grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 7rem; transform: rotate(1.5deg); }
}
@media (max-width: 560px) {
  .indice-colunas { display: none; }
  .indice-lista li { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
  .indice-lista .seta { display: none; }
  .contraparte::before { content: "→ "; font-style: normal; color: var(--malva); }
}

/* Sala escura: vitrine e reservado */
.sala { background: var(--sala); color: var(--sala-texto); }
.sala-in {
  max-width: var(--largura); margin: 0 auto; padding: var(--respiro) var(--g);
  display: grid; gap: 3.5rem;
}
.sala .titulo-secao { color: #fff; }
.sala .titulo-secao em { color: var(--ceu); }
.sala-texto { display: grid; gap: 1.6rem; align-content: start; }
.audiencia { margin-top: 1.4rem; display: grid; gap: 1rem; }
.audiencia h3 { color: #fff; font-family: var(--display); font-weight: 600; font-size: 1.15rem; }
.opcoes { display: grid; gap: .7rem; }
.opcoes li { display: flex; align-items: center; gap: .8rem; font-family: var(--display); font-size: 1rem; color: var(--sala-texto); }
.bola {
  width: 1.3rem; height: 1.3rem; border-radius: 50%; flex: none;
  border: 2px solid rgba(205, 209, 224, .55); display: grid; place-items: center;
}
.marcada { color: #fff !important; }
.marcada .bola { background: var(--ceu); border-color: var(--ceu); }
.marcada .bola::after {
  content: ""; width: .32rem; height: .6rem; border: solid var(--sala); border-width: 0 2px 2px 0;
  transform: translateY(-1px) rotate(45deg);
}
.audiencia-nota { font-size: .98rem; max-width: 30rem; }

.ficha { margin: 0; display: grid; gap: 1.2rem; }
.ficha-cartao {
  background: var(--cartao); color: var(--texto); border-radius: 18px; overflow: hidden;
  max-width: 30rem; width: 100%; justify-self: center;
  box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6);
}
.ficha-midia { position: relative; }
.ficha-midia img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.chip {
  position: absolute; top: .8rem; max-width: 48%;
  background: rgba(255, 255, 255, .92); border: 1px solid var(--linha); color: var(--tinta);
  font-family: var(--display); font-size: .78rem; font-weight: 500;
  padding: .3rem .7rem; border-radius: 999px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.chip--esq { left: .8rem; }
.chip--dir { right: .8rem; }
.ficha-corpo { padding: 1.3rem 1.3rem 1.4rem; display: grid; gap: .8rem; }
.barra { display: block; height: .7rem; border-radius: 4px; background: #E9E6E0; }
.barra--titulo { height: 1.1rem; width: 72%; background: #D9D6CF; }
.barra--curta { width: 44%; }
.indicadores {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: .4rem 0 0;
  border-block: 1px solid var(--linha); padding-block: .9rem;
}
.indicadores div { display: grid; gap: .45rem; padding-inline: .6rem; }
.indicadores div + div { border-left: 1px solid var(--linha); }
.indicadores dt { font-family: var(--corpo); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--suave); }
.indicadores dd { margin: 0; }
.indicadores .barra { width: 70%; height: .9rem; background: #D9D6CF; }
.reservado {
  background: var(--papel); border: 1px dashed #C9C4BA; border-radius: 12px; padding: .9rem 1rem;
  display: grid; gap: .6rem;
}
.reservado-titulo { display: flex; align-items: center; gap: .5rem; font-family: var(--display); font-weight: 600; color: var(--tinta); font-size: .92rem; }
.reservado ul { display: grid; gap: .4rem; }
.reservado li {
  display: grid; grid-template-columns: auto minmax(2rem, 1fr); align-items: center; gap: .8rem;
  font-family: var(--display); font-size: .86rem; color: var(--texto);
}
.reservado li::after {
  content: ""; height: .55rem; border-radius: 3px;
  background: repeating-linear-gradient(135deg, #DCD8D0 0 5px, #EDEAE4 5px 10px);
}
.botao--falso { width: 100%; cursor: default; pointer-events: none; margin-top: .3rem; }
@media (min-width: 960px) {
  .sala-in { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); column-gap: 5rem; align-items: center; }
  .ficha-cartao { transform: rotate(-1.2deg); }
}

/* Reuniões */
.reunioes { display: grid; gap: 3rem; }
.reunioes-cabeca { display: grid; gap: 1.4rem; }
.grade {
  margin: 0; background: var(--cartao); border-radius: 20px;
  padding: clamp(1.2rem, 3vw, 2rem);
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.2rem 1.6rem; align-items: center;
}
.folha {
  width: 5.2rem; border-radius: 12px; overflow: hidden; text-align: center;
  border: 1px solid var(--linha); display: grid;
}
.folha-semana { background: var(--ameixa); color: #fff; padding: .25rem 0; }
.folha-dia { font-family: var(--display); font-weight: 600; font-size: 2.2rem; line-height: 1.1; color: var(--tinta); padding-top: .3rem; }
.folha-mes { color: var(--suave); padding-bottom: .45rem; }
.pilulas { display: flex; flex-wrap: wrap; gap: .55rem; }
.pilulas li, .legenda-grade li {
  font-family: var(--corpo); font-size: .8rem; font-variant-numeric: tabular-nums;
  padding: .5rem .85rem; border-radius: 999px; border: 1.5px solid transparent;
}
.livre { background: var(--ameixa-clara); color: var(--ameixa); }
.ocupado { background: var(--ameixa); color: #fff; }
.indisponivel { border-color: #C7C4BC !important; color: var(--suave); background: transparent; }
.legenda-grade { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem; }
.legenda-grade li { font-size: .7rem; padding: .25rem .65rem; }
.grade .nota { grid-column: 1 / -1; }
@media (max-width: 600px) { .grade { grid-template-columns: minmax(0, 1fr); } }
.modos { display: grid; gap: 2.4rem; }
.modo h3 { font-family: var(--display); font-weight: 600; font-size: 1.35rem; margin-bottom: .6rem; letter-spacing: -.01em; }
.modo--largo p { font-size: clamp(1.15rem, 1rem + .6vw, 1.45rem); line-height: 1.45; color: var(--tinta); }
.rede {
  display: grid; gap: 1.4rem; padding-top: 3rem; margin-top: 1rem;
  border-top: 2px solid var(--tinta);
}
.rede-frase { font-family: var(--display); font-weight: 400; font-size: clamp(1.6rem, 1.1rem + 2vw, 2.8rem); line-height: 1.15; color: var(--tinta); letter-spacing: -.02em; }
.rede-frase em { color: var(--ameixa); }
@media (min-width: 900px) {
  .reunioes { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 1.5rem; }
  .reunioes-cabeca { grid-column: 1 / 6; align-self: start; }
  .grade { grid-column: 6 / -1; }
  .modos { grid-column: 1 / -1; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; }
  .rede { grid-column: 1 / -1; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); column-gap: 4rem; align-items: end; }
}

/* Festivais */
.festivais { display: grid; gap: 3rem; }
.festivais-texto { display: grid; gap: 1.4rem; align-content: start; }
.subtitulo { font-family: var(--display); font-weight: 600; font-size: 1.35rem; margin-top: 1rem; }
.acervo { margin: 0; display: grid; gap: 1rem; }
.busca {
  display: flex; align-items: center; gap: .7rem;
  background: var(--cartao); border: 2px solid var(--ameixa); border-radius: 14px;
  padding: .85rem 1rem; color: var(--tinta);
  font-family: var(--display); font-size: clamp(.92rem, .85rem + .3vw, 1.05rem);
}
.busca svg { color: var(--ameixa); flex: none; }
.player { position: relative; border-radius: 16px; overflow: hidden; background: #000; }
.player img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; filter: brightness(.72) saturate(.85); }
.player-play {
  position: absolute; left: 50%; top: 44%; translate: -50% -50%;
  width: 4.2rem; height: 4.2rem; border-radius: 50%; border: 2px solid #fff;
  display: grid; place-items: center;
}
.player-play::after { content: ""; margin-left: .3rem; border-style: solid; border-width: .75rem 0 .75rem 1.2rem; border-color: transparent transparent transparent #fff; }
.legenda--player { bottom: 3rem; left: 50%; transform: translateX(-50%); max-width: calc(100% - 2.2rem); text-align: center; }
.player-barra {
  position: absolute; left: 1rem; right: 1rem; bottom: 1rem;
  display: flex; align-items: center; gap: .8rem;
}
.player-barra::before { content: ""; position: absolute; left: 0; right: 5.2rem; height: 3px; background: rgba(255, 255, 255, .35); border-radius: 2px; }
.player-progresso { position: relative; z-index: 1; height: 3px; width: calc((100% - 5.2rem) * .42); background: var(--ceu); border-radius: 2px; }
.player-tempo { margin-left: auto; font-family: var(--corpo); font-size: .72rem; color: #fff; font-variant-numeric: tabular-nums; }
.resultado {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .9rem; align-items: start;
  background: var(--cartao); border-radius: 14px; padding: 1rem 1.1rem; font-size: .98rem;
}
.resultado-tempo {
  font-family: var(--corpo); font-size: .76rem; background: var(--ameixa); color: #fff;
  padding: .25rem .5rem; border-radius: 6px; font-variant-numeric: tabular-nums;
}
.faixas-legenda { display: flex; flex-wrap: wrap; gap: .4rem; }
.faixas-legenda li {
  font-family: var(--corpo); font-size: .72rem; letter-spacing: .06em;
  border: 1px solid var(--linha); border-radius: 6px; padding: .25rem .5rem; color: var(--tinta);
  background: var(--cartao);
}
.faixas-legenda li.atual { border-color: var(--ceu); background: #E8F2FA; }
@media (min-width: 960px) {
  .festivais { grid-template-columns: minmax(0, .9fr) minmax(0, 1.15fr); column-gap: 5rem; align-items: start; }
  .acervo { margin-top: 3rem; }
}

/* Como participar */
.participar { display: grid; gap: 1.4rem; }
.passos { display: grid; gap: 2.2rem; margin-top: 2rem; counter-reset: passo; }
.passos li { counter-increment: passo; display: grid; gap: .6rem; align-content: start; }
.passos li::before {
  content: counter(passo);
  font-family: var(--display); font-weight: 600; font-size: clamp(4rem, 3rem + 4vw, 7.5rem); line-height: .85;
  color: transparent; -webkit-text-stroke: 1.5px var(--tinta); letter-spacing: -.04em;
}
.passos li:last-child::before { color: var(--ameixa); -webkit-text-stroke-color: var(--ameixa); }
.passos h3 { font-family: var(--display); font-weight: 600; font-size: 1.3rem; letter-spacing: -.01em; }
.passos p { max-width: 20rem; }
@media (min-width: 720px) { .passos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1080px) {
  .passos { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem; }
  .passos li { border-left: 1px solid var(--linha); padding-left: 1.4rem; }
  .passos li:first-child { border-left: 0; padding-left: 0; }
}

/* Chamada final */
.final {
  max-width: var(--largura); margin: 0 auto; padding: var(--respiro) var(--g);
  display: grid; gap: 3rem;
}
.final-titulo {
  font-family: var(--display); font-weight: 600; letter-spacing: -.03em; line-height: 1.02;
  font-size: clamp(2.4rem, 1.2rem + 5vw, 6rem); max-width: 16ch;
}
.final-titulo em { color: var(--ameixa); font-weight: 500; }
.final-colunas { display: grid; gap: 2.5rem; }
.final-colunas > div { display: grid; gap: .8rem; align-content: start; justify-items: start; max-width: 28rem; }
.final-pergunta { font-family: var(--display); font-weight: 600; font-size: 1.3rem; color: var(--tinta); }
.contato { display: grid; gap: .5rem; margin-top: .4rem; }
.contato-email { font-family: var(--corpo); font-size: .9rem; color: var(--tinta); user-select: all; }
@media (min-width: 900px) {
  .final-colunas { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 56rem; margin-left: auto; }
}

/* Rodapé */
.rodape { background: var(--rodape); }
.rodape-in {
  max-width: var(--largura); margin: 0 auto; padding: 3rem var(--g) calc(2.5rem + env(safe-area-inset-bottom, 0px));
  display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr);
}
.rodape-marca { height: 40px; width: auto; }
.rodape-lema { font-family: var(--display); font-style: italic; font-weight: 400; font-size: 1.2rem; color: var(--tinta); }
.rodape-aviso, .rodape-direitos { font-size: .9rem; color: var(--suave); max-width: 40rem; }
.rodape-direitos { font-family: var(--corpo); font-size: .75rem; }
.rodape-links { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .85rem; }
.rodape-links a { color: var(--suave); }
/* Páginas de texto (privacidade, exclusão de conta). */
.documento { max-width: 46rem; margin: 0 auto; padding: 2.5rem 1rem 4rem; }
.documento h1 { font-family: var(--display); font-weight: 600; font-size: 1.8rem; margin: 1.5rem 0 .5rem; }
.documento h2 { font-family: var(--display); font-weight: 500; font-size: 1.15rem; margin: 2rem 0 .5rem; }
.documento p, .documento li { line-height: 1.6; color: var(--tinta); }
.documento ul { padding-left: 1.2rem; list-style: disc; }
.documento ol { padding-left: 1.2rem; list-style: decimal; }
.documento li { margin: .25rem 0; }
.documento .data { color: var(--suave); font-size: .85rem; }
.documento .marca img { height: 36px; width: auto; }

/* Movimento reduzido: nada anda sozinho. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .faixa-trilho { flex-wrap: wrap; width: auto; justify-content: center; row-gap: 1rem; }
  .faixa-trilho [aria-hidden="true"] { display: none; }
}

/* Chinês e coreano: ideogramas pedem entrelinha e sem aperto de tracking. */
:lang(zh) .titulo-mestre, :lang(ko) .titulo-mestre,
:lang(zh) .final-titulo, :lang(ko) .final-titulo,
:lang(zh) .titulo-secao, :lang(ko) .titulo-secao { line-height: 1.12; letter-spacing: 0; }
