:root {
  --lp-m: var(--tp-page-margin);
  --lp-volta: calc(4 * var(--tp-dur-varre));
}
html {
  scroll-behavior: auto;
}
body {
  min-height: 100vh;
  background: var(--tp-bg);
  overflow-x: clip;
}
.lp-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.lp-pular {
  position: fixed;
  left: var(--tp-space-4);
  top: var(--tp-space-4);
  z-index: 20;
  transform: translateY(-200%);
}
.lp-pular:focus {
  transform: none;
}

#lp-fundo {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  display: block;
}
.lp-fundo-css {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  display: none;
  background: var(--tp-led-focos), var(--tp-bg);
}
.sem-gl #lp-fundo,
.lp-parado #lp-fundo {
  display: none;
}
.sem-gl .lp-fundo-css,
.lp-parado .lp-fundo-css {
  display: block;
}
.sem-gl .lp-fundo-css {
  animation: lp-respira-fundo calc(5 * var(--tp-dur-varre)) var(--tp-ease) infinite alternate;
}
@keyframes lp-respira-fundo {
  from {
    opacity: 0.75;
  }
  to {
    opacity: 1;
  }
}

.lp-mira {
  position: fixed;
  z-index: 6;
  pointer-events: none;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  opacity: 0;
  transition:
    transform var(--tp-dur-mola) var(--tp-mola),
    width var(--tp-dur-mola) var(--tp-mola),
    height var(--tp-dur-mola) var(--tp-mola),
    opacity var(--tp-dur-fast) var(--tp-ease);
}
.lp-mira.is-on {
  opacity: 1;
}
.lp-mira i {
  position: absolute;
  width: var(--tp-mira-tam);
  height: var(--tp-mira-tam);
  border: 0 solid var(--tp-violeta-glow);
}
.lp-mira i:nth-child(1) {
  left: 0;
  top: 0;
  border-left-width: var(--tp-mira);
  border-top-width: var(--tp-mira);
}
.lp-mira i:nth-child(2) {
  right: 0;
  top: 0;
  border-right-width: var(--tp-mira);
  border-top-width: var(--tp-mira);
}
.lp-mira i:nth-child(3) {
  left: 0;
  bottom: 0;
  border-left-width: var(--tp-mira);
  border-bottom-width: var(--tp-mira);
}
.lp-mira i:nth-child(4) {
  right: 0;
  bottom: 0;
  border-right-width: var(--tp-mira);
  border-bottom-width: var(--tp-mira);
}

.lp {
  position: relative;
}
.lp-i {
  width: 24px;
  height: 24px;
  flex: none;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
  stroke-linecap: butt;
  stroke-linejoin: miter;
}
.lp-miolo {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--lp-m);
}

/* foco de teclado por dentro do chanfro, que o clip-path cortaria por fora */
.lp a:focus-visible,
.lp button:focus-visible {
  outline: 2px solid var(--tp-violeta-glow);
  outline-offset: 2px;
  box-shadow: none;
}
.lp .tp-btn--chanfro:focus-visible {
  outline-offset: -4px;
}
.lp .tp-btn--primary.tp-btn--chanfro:focus-visible {
  outline-color: var(--tp-text-on-violeta);
}

.lp-top {
  position: sticky;
  top: 0;
  z-index: 4;
}
.lp-top__in {
  max-width: 1240px;
  margin: 0 auto;
  padding: var(--tp-space-4) var(--lp-m);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tp-space-4);
}
.lp-top__nav {
  display: flex;
  align-items: center;
  gap: var(--tp-space-2);
}
.lp-top__logo {
  width: 120px;
  height: auto;
  display: block;
}
.lp-top__led {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--tp-violeta-player);
  box-shadow: var(--tp-glow-sm);
  transform-origin: 0 50%;
  transform: scaleX(var(--prog, 0));
}
.lp-top__led.is-fim {
  animation: tp-acende var(--tp-dur-mola) var(--tp-mola);
}

/* ── as cenas presas ─────────────────────────────────────────────────── */
.lp-cena {
  position: relative;
  height: calc(var(--n, 2) * 100vh);
  height: calc(var(--n, 2) * 100svh);
}
.lp-quadro {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
}
.lp-hud-leg {
  position: absolute;
  left: var(--lp-m);
  bottom: var(--tp-space-6);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: var(--tp-space-3);
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--tp-text-secondary);
  font-variant-numeric: tabular-nums;
}
.lp-hud-leg::before {
  content: "";
  width: 10px;
  height: 10px;
  background: var(--tp-violeta-player);
  clip-path: var(--tp-clip-chanfro);
}
.lp-odo {
  display: inline-flex;
  align-items: flex-start;
  white-space: pre;
  font-variant-numeric: tabular-nums;
}
.lp-odo__col {
  display: inline-block;
  height: 1em;
  line-height: 1;
  overflow: hidden;
  vertical-align: top;
}
.lp-odo__fita {
  display: block;
  line-height: 1;
  transition: transform var(--tp-dur-mola) var(--tp-mola);
}
.lp-odo__ch {
  display: inline-block;
  line-height: 1;
}

/* a gramática da letra: o Quantico sobe por máscara; depois de subir e acender, a máscara solta */
.lp-pal {
  display: inline-block;
  overflow: clip;
  vertical-align: bottom;
  padding: 0.06em 0.02em 0.28em;
  margin: -0.06em -0.02em -0.28em;
}
.lp-pal > span {
  display: inline-block;
  will-change: transform;
}
.lp-heroi__h1.is-acesa .lp-pal,
.is-pico .lp-titulo .lp-pal,
.lp-parado .lp-pal {
  overflow: visible;
}
.lp-titulo .lp-pal > span {
  transform: translateY(
    calc((1 - clamp(0, calc((var(--pt, 1) - var(--i, 0) * 0.14) / 0.45), 1)) * 112%)
  );
}
.lp-titulo em,
.lp-heroi__h1 em {
  font-style: normal;
  color: var(--tp-branco-player);
  transition:
    color var(--tp-dur-slow) var(--tp-ease),
    text-shadow var(--tp-dur-slow) var(--tp-ease);
}
.is-pico .lp-titulo em,
.lp-heroi__h1.is-acesa em {
  color: var(--tp-heroi-destaque);
  text-shadow: var(--tp-glow);
}

.lp-linhas {
  display: grid;
  overflow: clip;
}
.lp-linhas > p {
  grid-area: 1 / 1;
  margin: 0;
  font-size: 22px;
  line-height: 1.4;
  color: var(--tp-text);
  opacity: 0;
  transform: translateY(100%);
  transition:
    transform var(--tp-dur-mola-lenta) var(--tp-mola),
    opacity var(--tp-dur-slow) var(--tp-ease);
  max-width: 34ch;
}
.lp-linhas > p.is-ativa {
  opacity: 1;
  transform: none;
}
.lp-linhas > p.is-saiu {
  opacity: 0;
  transform: translateY(-100%);
}

/* ── o herói: o teto acende, e o scroll fura a palavra ───────────────────── */
.lp-heroi .lp-quadro {
  display: grid;
  align-content: end;
}
.lp-heroi__in {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--lp-m) clamp(72px, 12vh, 140px);
  display: grid;
  gap: var(--tp-space-6);
  justify-items: start;
}
.lp-heroi__in::before {
  content: "";
  position: absolute;
  inset: -20% -10% 0 -20%;
  z-index: -1;
  background: radial-gradient(60% 70% at 30% 70%, var(--tp-preto-72), transparent 75%);
  pointer-events: none;
}
.lp-heroi__h1 {
  font-size: clamp(48px, 8.5vw, 132px);
  line-height: 0.95;
  max-width: 9.5em;
  transform-origin: var(--ox, 50%) var(--oy, 50%);
  will-change: transform;
}
.lp-heroi__h1.lp-chega .lp-pal > span {
  animation: lp-sobe var(--tp-dur-mola-lenta) var(--tp-mola) both;
  animation-delay: calc(var(--i, 0) * var(--tp-dur-cascata) * 2 + 5 * var(--tp-dur-cascata));
}
@keyframes lp-sobe {
  from {
    transform: translateY(112%);
  }
  to {
    transform: none;
  }
}
.lp-heroi__sai {
  display: grid;
  gap: var(--tp-space-6);
  justify-items: start;
}
.lp-lede {
  margin: 0;
  max-width: 40ch;
  color: var(--tp-text);
  font-size: 19px;
  line-height: 1.5;
}
.lp-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tp-space-4);
  align-items: center;
}
.lp-resp-linha {
  display: block;
  margin: 0;
  padding: var(--tp-space-3) var(--tp-space-4);
  border-left: 3px solid var(--tp-violeta-player);
  background: var(--tp-preto-72);
  color: var(--tp-text);
  font-size: 15px;
  line-height: 1.5;
  max-width: 52ch;
  text-decoration: none;
}
.lp-resp-linha:hover {
  color: var(--tp-text);
  text-decoration: none;
  background: var(--tp-violeta-08);
}
.lp-resp-linha b {
  color: var(--tp-violeta-glow);
  font-weight: 500;
  white-space: nowrap;
}
.lp-unidade {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--tp-space-3);
  color: var(--tp-text-secondary);
  font-size: 15px;
}
.lp-rola {
  position: absolute;
  left: 50%;
  bottom: var(--tp-space-6);
  transform: translateX(-50%);
  color: var(--tp-text-secondary);
  z-index: 1;
}
.lp-rola .lp-i {
  width: 20px;
  height: 20px;
  transform: rotate(-90deg);
  animation: lp-desce calc(2.5 * var(--tp-dur-varre)) var(--tp-ease) infinite;
}
@keyframes lp-desce {
  0%,
  100% {
    transform: rotate(-90deg) translateX(0);
  }
  50% {
    transform: rotate(-90deg) translateX(-6px);
  }
}
/* a sala em pouca luz à direita do herói, só a PC da cena acesa: a mesma sala do mergulho */
.lp-heroi__sala {
  display: none;
  position: absolute;
  right: var(--lp-m);
  bottom: clamp(72px, 12vh, 140px);
  width: 42%;
  height: 44vh;
  opacity: 0.6;
  pointer-events: none;
}
@media (min-width: 1200px) {
  .lp-heroi__sala {
    display: block;
  }
}

/* ── a sala e a máquina: um contêiner preso, uma câmera ──────────────────── */
.lp-plano {
  position: absolute;
  inset: 0;
  will-change: opacity;
}
.lp-sala {
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: 96px var(--lp-m) 72px;
  max-width: 1240px;
  margin: 0 auto;
}
.lp-titulo {
  font-size: clamp(44px, 7vw, 112px);
  line-height: 0.95;
  max-width: 11em;
}
.lp-sala__chao {
  position: relative;
  min-height: 0;
  transform-origin: var(--cx, 50%) var(--cy, 50%);
  will-change: transform;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, var(--tp-bg) 42%);
  mask-image: linear-gradient(180deg, transparent 0, var(--tp-bg) 42%);
}
.lp-heroi__sala .lp-sala__chao,
.lp-heroi__sala {
  -webkit-mask-image: linear-gradient(180deg, transparent 0, var(--tp-bg) 50%);
  mask-image: linear-gradient(180deg, transparent 0, var(--tp-bg) 50%);
}
.lp-fila {
  position: absolute;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: var(--g, 2.2%);
  transform-origin: 50% 100%;
  transform: translateX(calc(var(--mx, 0) * var(--prof, 0) * 18px)) scale(var(--esc, 1));
  bottom: var(--b, 0%);
  opacity: var(--op, 1);
}
.lp-lugar {
  position: relative;
  width: var(--lw, 10.5%);
  aspect-ratio: 1 / 1.05;
}
.lp-sala .lp-lugar:not(.lp-alvo),
.lp-alvo .lp-lugar__cab,
.lp-alvo .lp-lugar__pc {
  opacity: var(--outros, 1);
}
.lp-lugar__tela {
  position: absolute;
  left: 4%;
  right: 4%;
  top: 0;
  height: 58%;
  clip-path: var(--tp-clip-chanfro);
  background: var(--tp-surface);
  overflow: hidden;
}
.lp-lugar__tela::before {
  content: "";
  position: absolute;
  inset: 0;
  outline: 1px solid var(--tp-border-strong);
  outline-offset: -1px;
}
.lp-lugar__luz {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, var(--tp-violeta-32), var(--tp-violeta-16));
  outline: 1.5px solid var(--tp-violeta-glow);
  outline-offset: -1.5px;
  opacity: clamp(0, calc((var(--ps, 0) - var(--t, 0)) * 30), 1);
  transition: background var(--tp-dur) var(--tp-ease);
}
.lp-alvo .lp-lugar__tela::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--tp-violeta-player);
  box-shadow: var(--tp-glow-lg);
  opacity: var(--brilho, 0);
}
.lp-lugar__scan {
  position: absolute;
  left: 0;
  right: 0;
  height: 18%;
  top: 0;
  transform: translateY(-120%);
  background: linear-gradient(
    180deg,
    transparent,
    color-mix(in srgb, var(--tp-violeta-player) 55%, transparent),
    transparent
  );
  animation: lp-scan var(--lp-volta) linear infinite;
  animation-delay: var(--d, 0s);
  opacity: clamp(0, calc((var(--ps, 0) - var(--t, 0)) * 30), 1);
}
@keyframes lp-scan {
  to {
    transform: translateY(620%);
  }
}
.lp-lugar__gg {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: clamp(9px, 1.4vw, 18px);
  color: var(--tp-branco-player);
  opacity: 0;
  transition: opacity var(--tp-dur) var(--tp-ease);
}
.lp-lugar__pc {
  position: absolute;
  left: 4%;
  top: 61%;
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: clamp(8px, 0.9vw, 12px);
  color: var(--tp-cinza-nevoa);
  opacity: clamp(0, calc((var(--ps, 0) - var(--t, 0)) * 30), 1);
}
.lp-lugar__cab {
  position: absolute;
  left: 22%;
  width: 56%;
  bottom: 0;
  height: 64%;
  color: var(--tp-cinza-nevoa);
  transform-origin: 50% 100%;
  transition:
    transform var(--tp-dur-mola-lenta) var(--tp-mola),
    filter var(--tp-dur) var(--tp-ease);
  --ce: var(--tp-border-strong);
  --cd: var(--tp-border-strong);
}
/* os acentos de cada linha */
.lp-sala[data-ac~="f1"] .lp-lugar__scan {
  animation-delay: 0s;
}
.lp-sala[data-ac~="f2"] .lp-lugar__luz {
  background: var(--tp-violeta-player);
  box-shadow: var(--tp-glow-sm);
  transition-delay: calc(var(--dist, 0) * var(--tp-dur-cascata));
}
.lp-sala[data-ac~="f2"] .lp-lugar__cab {
  transform: translateY(-34%) scale(1.18);
  color: var(--tp-branco-player);
  transition-delay: calc(var(--dist, 0) * var(--tp-dur-cascata));
}
.lp-sala[data-ac~="f2"] .lp-lugar__gg {
  color: var(--tp-text-on-violeta);
}
.lp-sala[data-ac~="f3"] .lp-lugar__gg {
  opacity: 1;
}
.lp-dupla.is-treme .lp-quadro {
  animation: lp-treme var(--tp-dur-mola-lenta) var(--tp-mola) 1;
}
@keyframes lp-treme {
  0% {
    transform: translate(8px, -4px);
  }
  25% {
    transform: translate(-7px, 3px);
  }
  50% {
    transform: translate(4px, -2px);
  }
  75% {
    transform: translate(-2px, 1px);
  }
  100% {
    transform: none;
  }
}
.lp-sala__pe {
  position: relative;
  z-index: 2;
  display: grid;
  gap: var(--tp-space-4);
  padding-top: var(--tp-space-6);
}
.lp-sala__pe::before,
.lp-maq__txt::before {
  content: "";
  position: absolute;
  inset: -40px -10vw -80px;
  z-index: -1;
  background: linear-gradient(180deg, transparent, var(--tp-preto-72) 40%);
  pointer-events: none;
}

/* a máquina: um PC de jogo, com o gabinete de vidro como protagonista */
.lp-maq {
  display: grid;
  grid-template-columns: 5fr 7fr;
  align-items: center;
  gap: var(--tp-space-12);
  padding: 96px var(--lp-m) 80px;
  max-width: 1240px;
  margin: 0 auto;
}
.lp-maq__txt {
  position: relative;
  display: grid;
  gap: var(--tp-space-8);
  z-index: 2;
}
.lp-maq__txt .lp-titulo {
  font-size: clamp(40px, 6vw, 96px);
}
.lp-maq__palco {
  position: relative;
  transform: perspective(1000px) rotateY(calc(var(--mx, 0) * 6deg))
    rotateX(calc(var(--my, 0) * -6deg));
}
.lp-maq__svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
  color: var(--tp-violeta-glow);
}
.lp-maq__svg [data-traco] {
  stroke: currentColor;
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: butt;
  stroke-linejoin: miter;
}
.lp-maq__svg .lp-parte-fone {
  color: var(--tp-cinza-nevoa);
  transition:
    color var(--tp-dur-slow) var(--tp-ease),
    filter var(--tp-dur-slow) var(--tp-ease);
}
.lp-maq[data-ac~="f2"] .lp-parte-fone {
  color: var(--tp-violeta-glow);
  filter: drop-shadow(0 0 10px color-mix(in srgb, var(--tp-violeta-player) 80%, transparent));
}
.lp-ventoinha {
  transform-box: fill-box;
  transform-origin: center;
}
.lp-maq.is-ligada .lp-ventoinha {
  animation: lp-gira calc(2 * var(--tp-dur-varre)) linear infinite;
}
@keyframes lp-gira {
  to {
    transform: rotate(360deg);
  }
}
.lp-maq__svg .lp-fita-led {
  color: var(--tp-border-strong);
  transition:
    color var(--tp-dur) var(--tp-ease),
    filter var(--tp-dur) var(--tp-ease);
}
.lp-maq.is-ligada .lp-fita-led {
  color: var(--tp-violeta-player);
  filter: drop-shadow(0 0 8px color-mix(in srgb, var(--tp-violeta-player) 100%, transparent))
    drop-shadow(0 0 24px color-mix(in srgb, var(--tp-violeta-player) 70%, transparent));
}
.lp-maq.is-ligada .lp-vidro-luz {
  opacity: 1;
}
.lp-vidro-luz {
  opacity: 0;
  transition: opacity var(--tp-dur-slow) var(--tp-ease);
}
.lp-maq__console path {
  stroke-dasharray: 120;
  stroke-dashoffset: 120;
  transition: stroke-dashoffset var(--tp-dur-varre) var(--tp-ease);
}
.lp-maq[data-ac~="f3"] .lp-maq__console path {
  stroke-dashoffset: 0;
}
.lp-maq__tela {
  position: absolute;
  left: 6.25%;
  top: 11.8%;
  width: 52.5%;
  height: 45.9%;
  clip-path: var(--tp-clip-chanfro);
  display: grid;
  place-items: center;
  align-content: center;
  gap: 4%;
  background: transparent;
  transition:
    background var(--tp-dur-slow) var(--tp-ease),
    box-shadow var(--tp-dur-slow) var(--tp-ease);
}
.lp-maq.is-ligada .lp-maq__tela {
  background: var(--tp-violeta-player);
  box-shadow: var(--tp-glow-lg);
}
.lp-relogio {
  position: relative;
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: clamp(32px, 5.6vw, 84px);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--tp-violeta-glow);
  opacity: var(--rel, 0);
  transition: color var(--tp-dur) var(--tp-ease);
}
.lp-maq.is-ligada .lp-relogio {
  color: var(--tp-text-on-violeta);
  -webkit-text-stroke: 0;
}
.lp-maq__jogos {
  position: absolute;
  inset: 14% 12%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6%;
  pointer-events: none;
}
.lp-maq__jogos span {
  clip-path: var(--tp-clip-chanfro);
  background: var(--tp-text-on-violeta);
  opacity: 0;
  transform: scale(0.9);
  transition:
    opacity var(--tp-dur) var(--tp-ease),
    transform var(--tp-dur-mola) var(--tp-mola);
  transition-delay: calc(var(--j, 0) * 1.5 * var(--tp-dur-cascata));
}
.lp-maq[data-ac~="f1"].is-ligada .lp-maq__jogos span {
  opacity: 0.9;
  transform: none;
}
.lp-maq[data-ac~="f1"].is-ligada .lp-relogio {
  opacity: 0;
}

/* ── as Competições ─────────────────────────────────────────────────────── */
.lp-comp .lp-quadro {
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: 96px var(--lp-m) 72px;
}
.lp-comp__cab,
.lp-comp__pe,
.lp-comp__palco {
  width: 100%;
  max-width: calc(1240px - 2 * var(--lp-m));
  margin: 0 auto;
}
.lp-comp .lp-hud-leg {
  left: max(var(--lp-m), calc(50% - 620px + var(--lp-m)));
}
.lp-comp__sobre {
  display: block;
  margin-bottom: 16px;
  color: var(--tp-violeta-player);
}
.lp-comp .lp-titulo {
  font-size: clamp(48px, 8vw, 128px);
}
.lp-comp__palco {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 0;
}
.lp-chave {
  width: 100%;
  max-height: 100%;
  overflow: visible;
  transform-origin: 50% 50%;
}
.lp-chave--cel {
  display: none;
}
.lp-chave [data-r] {
  stroke: var(--tp-violeta-glow);
  stroke-width: 2;
  fill: none;
  transition:
    stroke var(--tp-dur-slow) var(--tp-ease),
    opacity var(--tp-dur-slow) var(--tp-ease);
}
.lp-chave [data-r].is-perde {
  stroke: var(--tp-border-strong);
}
.lp-chave .lp-caminho {
  stroke: var(--tp-branco-player);
  stroke-width: 3;
  fill: none;
  filter: drop-shadow(0 0 6px color-mix(in srgb, var(--tp-violeta-player) 90%, transparent));
}
.lp-chave text {
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: 20px;
  fill: var(--tp-text);
  transition:
    fill var(--tp-dur-slow) var(--tp-ease),
    opacity var(--tp-dur-slow) var(--tp-ease);
}
.lp-chave text.is-perde {
  fill: var(--tp-text-secondary);
  opacity: 0.6;
}
.lp-chave text.lp-voces {
  fill: var(--tp-branco-player);
}
.lp-chave--cel text {
  font-size: 15px;
}
.lp-chave text.lp-slot {
  font-size: 15px;
  fill: var(--tp-violeta-glow);
}
.lp-chave .lp-cometa {
  fill: var(--tp-branco-player);
  filter: drop-shadow(0 0 8px var(--tp-violeta-glow)) drop-shadow(0 0 16px var(--tp-violeta-player));
}
.lp-chave .is-hl {
  stroke: var(--tp-branco-player) !important;
  filter: drop-shadow(0 0 6px color-mix(in srgb, var(--tp-violeta-player) 90%, transparent));
}
.lp-placa {
  position: absolute;
  top: 50%;
  display: inline-flex;
  align-items: center;
  gap: var(--tp-space-3);
  padding: var(--tp-space-4) var(--tp-space-6);
  background: var(--tp-surface);
  border: 1px solid var(--tp-heroi-borda);
  clip-path: var(--tp-clip-chanfro);
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: clamp(18px, 2.2vw, 30px);
  color: var(--tp-branco-player);
  opacity: 0;
  will-change: transform, opacity;
  z-index: 2;
}
.lp-placa--a {
  right: 50%;
  margin-right: var(--tp-space-4);
}
.lp-placa--b {
  left: 50%;
  margin-left: var(--tp-space-4);
}
.lp-placa--a::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: var(--tp-violeta-player);
}
.lp-placar {
  position: absolute;
  left: 50%;
  top: calc(50% + 70px);
  transform: translateX(-50%);
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: clamp(14px, 1.4vw, 18px);
  color: var(--tp-text-secondary);
  opacity: 0;
  white-space: pre;
}
.lp-aura {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(70vmin, 720px);
  aspect-ratio: 1;
  transform: translate(-50%, -58%);
  border-radius: 50%;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--tp-violeta-player) 50%, transparent),
    color-mix(in srgb, var(--tp-violeta-player) 0%, transparent) 62%
  );
  opacity: 0;
  pointer-events: none;
}
.lp-trofeu {
  position: absolute;
  left: 50%;
  top: 50%;
  width: clamp(180px, 22vw, 320px);
  height: auto;
  transform: translate(-50%, -62%) scale(var(--ts, 0.4));
  color: var(--tp-violeta-glow);
  overflow: visible;
  opacity: 0;
  transition:
    filter var(--tp-dur-slow) var(--tp-ease),
    color var(--tp-dur-slow) var(--tp-ease);
}
.lp-trofeu path {
  stroke: currentColor;
  fill: none;
  stroke-width: 0.7;
  stroke-linecap: butt;
  stroke-linejoin: miter;
}
.lp-trofeu.is-acesa {
  color: var(--tp-branco-player);
  filter: drop-shadow(0 0 18px color-mix(in srgb, var(--tp-violeta-player) 90%, transparent))
    drop-shadow(0 0 60px color-mix(in srgb, var(--tp-violeta-player) 60%, transparent));
}
.lp-comp__pe {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: flex-end;
}
.lp-comp__pe .lp-linhas {
  max-width: 36ch;
}
.lp-comp__pe::before {
  content: "";
  position: absolute;
  inset: -40px -10vw -80px;
  z-index: -1;
  background: linear-gradient(180deg, transparent, var(--tp-preto-72) 45%);
  pointer-events: none;
}

/* ── as seções soltas ─────────────────────────────────────────────────── */
.lp-solta {
  position: relative;
  padding-block: var(--tp-space-20);
}
.lp-solta__cab {
  display: grid;
  gap: var(--tp-space-3);
  margin-bottom: var(--tp-space-10);
}
.lp-solta__cab .tp-h2 {
  font-size: clamp(36px, 5vw, 72px);
  line-height: 1;
}
.lp-solta__cab p {
  margin: 0;
  color: var(--tp-text-secondary);
  font-size: 17px;
  max-width: 52ch;
}
.lp-entra {
  opacity: 0;
  transform: translateY(var(--tp-entra-deslocamento));
  transition:
    opacity var(--tp-dur-slow) var(--tp-ease),
    transform var(--tp-dur-mola-lenta) var(--tp-mola);
  transition-delay: calc(var(--i, 0) * var(--tp-dur-cascata) * 2);
}
.lp-entra.is-visto {
  opacity: 1;
  transform: none;
}

.lp .tp-badge {
  gap: 6px;
}

/* Da reserva ao GG: o fio de LED desce, enche os numerais, e o celular ao lado mostra cada passo */
.lp-como__corpo {
  display: grid;
  gap: var(--tp-space-12);
}
@media (min-width: 1024px) {
  .lp-como__corpo {
    grid-template-columns: 1fr minmax(240px, 300px);
    align-items: start;
  }
}
.lp-passos {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0 0 0 calc(var(--tp-space-8) + 2px);
  display: grid;
  gap: var(--tp-space-12);
}
.lp-fio {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--tp-border);
}
.lp-fio::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--tp-violeta-player);
  box-shadow: var(--tp-glow-sm);
  transform-origin: 50% 0;
  transform: scaleY(var(--f, 0));
  opacity: calc(1 - var(--apaga, 0));
}
.lp-passo {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--tp-space-8);
  align-items: center;
}
.lp-passo__n {
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: clamp(64px, 10vw, 168px);
  line-height: 0.9;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--tp-border-strong);
  background: linear-gradient(
    0deg,
    var(--tp-violeta-glow) var(--enche, 0%),
    transparent var(--enche, 0%)
  );
  -webkit-background-clip: text;
  background-clip: text;
  transition: -webkit-text-stroke-color var(--tp-dur) var(--tp-ease);
}
.lp-passo.is-acesa .lp-passo__n {
  -webkit-text-stroke-color: var(--tp-violeta-glow);
}
.lp-passo__t {
  display: flex;
  align-items: center;
  gap: var(--tp-space-3);
  font-family: var(--tp-font-display);
  font-weight: 700;
  font-size: clamp(22px, 2.4vw, 32px);
  letter-spacing: var(--tp-h2-track);
  text-transform: uppercase;
  color: var(--tp-branco-player);
}
.lp-passo__t .lp-i {
  width: 28px;
  height: 28px;
  color: var(--tp-violeta-glow);
}
.lp-passo__t .lp-i path {
  stroke-dasharray: 80;
  stroke-dashoffset: 80;
  transition: stroke-dashoffset var(--tp-dur-varre) var(--tp-ease);
}
.lp-passo.is-acesa .lp-passo__t .lp-i path {
  stroke-dashoffset: 0;
}
.lp-passo__d {
  margin: var(--tp-space-2) 0 0;
  color: var(--tp-text-secondary);
  font-size: 17px;
  line-height: 1.5;
}
.lp-cel {
  display: none;
}
@media (min-width: 1024px) {
  .lp-cel {
    display: block;
    position: sticky;
    top: 140px;
  }
}
.lp-cel__svg {
  width: 100%;
  height: auto;
  display: block;
  color: var(--tp-violeta-glow);
  overflow: visible;
}
.lp-cel__svg path {
  stroke: currentColor;
  fill: none;
  stroke-width: 2.5;
}
.lp-cel__tela {
  position: absolute;
  left: 10%;
  top: 9.1%;
  width: 80%;
  height: 81.8%;
  clip-path: var(--tp-clip-chanfro);
  background: var(--tp-surface);
  overflow: hidden;
}
.lp-cel__p {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: var(--tp-space-3);
  padding: var(--tp-space-4);
  text-align: center;
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity var(--tp-dur-slow) var(--tp-ease),
    transform var(--tp-dur-mola) var(--tp-mola);
}
.lp-cel[data-passo="0"] .lp-cel__p[data-p="0"],
.lp-cel[data-passo="1"] .lp-cel__p[data-p="1"],
.lp-cel[data-passo="2"] .lp-cel__p[data-p="2"],
.lp-cel[data-passo="3"] .lp-cel__p[data-p="3"] {
  opacity: 1;
  transform: none;
}
.lp-cel__dia {
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: 18px;
  color: var(--tp-text-secondary);
}
.lp-cel__hora {
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: 52px;
  line-height: 1;
  color: var(--tp-branco-player);
}
.lp-cel__pc {
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: 14px;
  color: var(--tp-violeta-glow);
}
.lp-cel__qr {
  width: 120px;
  height: 120px;
  color: var(--tp-branco-player);
}
.lp-cel__qr path {
  stroke-width: 1.1;
}
.lp-cel__p[data-p="1"]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 30%;
  height: 3px;
  background: var(--tp-violeta-player);
  box-shadow: var(--tp-glow);
  animation: lp-le calc(3 * var(--tp-dur-varre)) var(--tp-ease) infinite alternate;
}
@keyframes lp-le {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(140px);
  }
}
.lp-cel__p[data-p="2"] {
  background: var(--tp-violeta-player);
}
.lp-cel__p[data-p="2"] * {
  color: var(--tp-text-on-violeta);
}
.lp-cel__gg {
  font-family: var(--tp-font-display);
  font-weight: 700;
  font-size: 88px;
  line-height: 1;
  color: var(--tp-branco-player);
  text-shadow: var(--tp-glow);
}
.lp-gg {
  margin-top: var(--tp-space-12);
  font-family: var(--tp-font-display);
  font-weight: 700;
  font-size: clamp(120px, 30vw, 420px);
  line-height: 0.8;
  letter-spacing: 0.02em;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--tp-border-strong);
  background: linear-gradient(
    0deg,
    var(--tp-violeta-player) var(--gg, 0%),
    transparent var(--gg, 0%)
  );
  -webkit-background-clip: text;
  background-clip: text;
  text-align: center;
  user-select: none;
}

.lp-resp {
  position: relative;
  z-index: 2;
  background: var(--tp-bg);
}
.lp-resp__txt {
  margin: 0 0 var(--tp-space-8);
  color: var(--tp-text);
  font-size: 18px;
  line-height: 1.6;
  max-width: 60ch;
}
.lp-quatro {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--tp-grid-gutter);
}
.lp-fato {
  display: grid;
  gap: var(--tp-space-3);
  align-content: start;
  padding: var(--tp-space-6);
  border: 1px solid var(--tp-border);
  background: var(--tp-surface);
  clip-path: var(--tp-clip-chanfro);
}
.lp-fato .lp-i {
  color: var(--tp-violeta-glow);
}
.lp-fato__t {
  font-weight: 600;
  font-size: 17px;
  color: var(--tp-text);
}
.lp-fato__d {
  margin: 0;
  color: var(--tp-text);
  font-size: 16px;
  line-height: 1.6;
}

.lp-app {
  position: relative;
  overflow: hidden;
  padding: var(--tp-space-16) 0;
}
.lp-letreiro {
  white-space: nowrap;
  font-family: var(--tp-font-display);
  font-weight: 700;
  font-size: clamp(64px, 13vw, 220px);
  line-height: 1;
  text-transform: uppercase;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--tp-violeta-player);
  transform: translateX(var(--lx, 0px)) skewX(var(--sk, 0deg));
  will-change: transform;
  user-select: none;
}
.lp-app__pe {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--tp-space-6);
  margin-top: var(--tp-space-10);
}
.lp-app__acoes {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tp-space-3);
}

.lp-pe {
  position: relative;
  z-index: 2;
  background: var(--tp-bg);
  border-top: 1px solid var(--tp-border);
}
.lp-pe__in {
  max-width: 1240px;
  margin: 0 auto;
  padding: var(--tp-space-16) var(--lp-m) var(--tp-space-8);
  display: grid;
  gap: var(--tp-space-8);
}
.lp-pe__logo {
  width: 100%;
  height: auto;
  opacity: 0;
  transition: opacity calc(2 * var(--tp-dur-varre)) var(--tp-ease);
}
.lp-pe__logo.is-visto {
  opacity: 1;
}
.lp-pe__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tp-space-2) var(--tp-space-6);
}
.lp-pe__links a {
  color: var(--tp-text-secondary);
  font-size: 14px;
}
.lp-pe__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--tp-space-2);
  color: var(--tp-cinza-nevoa);
  font-family: var(--tp-font-mono);
  font-weight: var(--tp-weight-mono);
  font-size: 12px;
}

/* ── a lista de espera ───────────────────────────────────────────────── */
.lp [hidden] {
  display: none !important;
}
.lp-simbolos {
  position: absolute;
  width: 0;
  height: 0;
}
.lp-semjs {
  display: grid;
  gap: var(--tp-space-6);
  justify-items: start;
  max-width: 640px;
  margin: 0 auto;
  padding: var(--tp-space-16) var(--lp-m);
}
.lp-semjs p {
  margin: 0;
  font-size: 18px;
  line-height: 1.6;
}
.lp-espera {
  position: relative;
  z-index: 2;
  background: var(--tp-bg);
  scroll-margin-top: var(--tp-space-8);
}
.lp-espera .lp-miolo {
  max-width: 760px;
}
.lp-espera__corpo {
  min-width: 0;
}
.lp-espera__caixa {
  min-width: 0;
}

.lp-form,
.lp-enviado {
  display: grid;
  gap: var(--tp-space-6);
  padding: var(--tp-space-8);
  border: 1px solid var(--tp-border-strong);
  background: var(--tp-surface);
  clip-path: var(--tp-clip-chanfro);
}
.lp-form__t {
  margin: 0;
  font-family: var(--tp-font-label);
  font-weight: 400;
  font-size: var(--tp-label-size);
  line-height: var(--tp-label-lh);
  letter-spacing: var(--tp-label-track);
  text-transform: uppercase;
  color: var(--tp-text-secondary);
}
.lp-campo {
  display: grid;
  gap: var(--tp-space-2);
}
.lp-campo > .tp-label {
  color: var(--tp-text-secondary);
}
.lp-form .tp-input {
  height: 48px;
  font-size: 16px;
}
.lp-form .tp-input:focus {
  outline: 2px solid var(--tp-violeta-glow);
  outline-offset: 2px;
}
.lp-form .tp-input[aria-invalid="true"] {
  border-color: var(--tp-vermelho-falha);
}
.lp-ajuda {
  margin: 0;
  color: var(--tp-text-secondary);
  font-size: var(--tp-caption-size);
  line-height: var(--tp-caption-lh);
}
.lp-erro {
  margin: 0;
  color: var(--tp-vermelho-falha);
  font-size: 14px;
  line-height: 1.4;
}
.lp-resumo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--tp-space-3);
  padding: var(--tp-space-4);
  border: 1px solid var(--tp-vermelho-falha);
  border-left-width: 3px;
  background: var(--tp-preto-72);
}
.lp-resumo p {
  flex: 1 1 220px;
  margin: 0;
  color: var(--tp-text);
  font-size: 15px;
  line-height: 1.5;
}
.lp-marca {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: var(--tp-space-3);
  align-items: start;
  min-height: 44px;
  padding-block: var(--tp-space-2);
  color: var(--tp-text);
  font-size: 16px;
  line-height: 1.5;
  cursor: pointer;
}
.lp-marca input {
  appearance: none;
  display: grid;
  place-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  border: 1px solid var(--tp-border-strong);
  background: transparent;
  cursor: pointer;
}
.lp-marca input::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2px solid var(--tp-text-on-violeta);
  border-bottom: 2px solid var(--tp-text-on-violeta);
  transform: rotate(-45deg) translate(1px, -1px) scale(0);
  transition: transform var(--tp-dur-fast) var(--tp-ease);
}
.lp-marca input:checked {
  background: var(--tp-violeta-player);
}
.lp-marca input:checked::before {
  transform: rotate(-45deg) translate(1px, -1px) scale(1);
}
.lp-marca input:focus-visible {
  outline: 2px solid var(--tp-violeta-glow);
  outline-offset: 2px;
}
.lp-marca input[aria-invalid="true"] {
  border-color: var(--tp-vermelho-falha);
}
.lp-menor {
  display: grid;
  gap: var(--tp-space-4);
}
.lp-aviso {
  margin: 0;
  padding: var(--tp-space-3) var(--tp-space-4);
  border-left: 3px solid var(--tp-violeta-player);
  background: var(--tp-preto-72);
  color: var(--tp-text);
  font-size: 15px;
  line-height: 1.5;
}
.lp-garantias {
  display: grid;
  gap: var(--tp-space-3);
  padding: var(--tp-space-4);
  border: 1px solid var(--tp-border);
  background: var(--tp-bg);
}
.lp-garantias p {
  margin: 0;
}
.lp-garantias__t {
  color: var(--tp-branco-player);
  font-weight: 600;
  font-size: 16px;
}
.lp-garantias__i {
  color: var(--tp-text);
  font-size: 15px;
}
.lp-garantias .lp-quatro {
  grid-template-columns: 1fr 1fr;
  gap: var(--tp-space-3);
}
.lp-garantias .lp-fato {
  padding: var(--tp-space-4);
  gap: var(--tp-space-2);
}
.lp-garantias .lp-fato__t {
  font-size: 16px;
}
.lp-garantias .lp-fato__d {
  font-size: 15px;
  line-height: 1.5;
}
.lp-dados {
  border: 1px solid var(--tp-border);
}
.lp-dados__t {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tp-space-4);
  list-style: none;
  min-height: 44px;
  padding: var(--tp-space-2) var(--tp-space-4);
  color: var(--tp-branco-player);
  font-weight: 600;
  font-size: 15px;
  cursor: pointer;
}
.lp-dados__t::-webkit-details-marker {
  display: none;
}
.lp-dados__t::after {
  content: "";
  flex: none;
  width: 8px;
  height: 8px;
  margin-right: var(--tp-space-1);
  border-right: 2px solid var(--tp-violeta-glow);
  border-bottom: 2px solid var(--tp-violeta-glow);
  transform: rotate(45deg) translateY(-2px);
  transition: transform var(--tp-dur) var(--tp-ease);
}
.lp-dados[open] > .lp-dados__t::after {
  transform: rotate(-135deg) translateY(-2px);
}
.lp-dados__t:focus-visible {
  outline: 2px solid var(--tp-violeta-glow);
  outline-offset: -2px;
}
.lp-dados ul {
  display: grid;
  gap: var(--tp-space-2);
  margin: 0;
  padding: 0 var(--tp-space-4) var(--tp-space-4) calc(var(--tp-space-4) + 1.2em);
  color: var(--tp-text);
  font-size: 15px;
  line-height: 1.5;
}
.lp-isca {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.lp-form .tp-btn--primary {
  justify-self: start;
}
.lp-form button:disabled {
  cursor: progress;
}
.lp-enviado {
  justify-items: start;
}
.lp-enviado:focus {
  outline: none;
}
.lp-enviado:focus-visible {
  outline: 2px solid var(--tp-violeta-glow);
  outline-offset: 2px;
}
.lp-enviado__t {
  margin: 0;
  font-family: var(--tp-font-display);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1;
  letter-spacing: var(--tp-h2-track);
  text-transform: uppercase;
  color: var(--tp-branco-player);
}
.lp-enviado p {
  margin: 0;
  max-width: 40ch;
  color: var(--tp-text);
  font-size: 18px;
  line-height: 1.5;
}

@media (max-width: 640px) {
  .lp-form,
  .lp-enviado {
    padding: var(--tp-space-6);
  }
  .lp-form .tp-btn--primary {
    width: 100%;
    justify-self: stretch;
  }
  .lp-garantias .lp-quatro {
    grid-template-columns: 1fr;
  }
}

/* ── o mapa: ilustração própria em SVG (mapa.js), sem requisição a terceiro ── */
.lp-mapa {
  position: relative;
  z-index: 2;
  background: var(--tp-bg);
}
.lp-mapa__cartao {
  display: grid;
  border: 1px solid var(--tp-border-strong);
  background: var(--tp-surface);
  clip-path: var(--tp-clip-chanfro);
}
.lp-mapa__quadro {
  position: relative;
  aspect-ratio: 8 / 7;
  min-width: 0;
  overflow: hidden;
  border-bottom: 1px solid var(--tp-border);
}
.lp-mapa__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.lp-mapa__info {
  display: grid;
  gap: var(--tp-space-4);
  justify-items: start;
  align-content: center;
  padding: var(--tp-space-6);
}
.lp-mapa__end {
  margin: 0;
  font-style: normal;
  color: var(--tp-branco-player);
  font-weight: 600;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.3;
}
.lp-mapa__cred {
  color: var(--tp-text-secondary);
  font-size: var(--tp-caption-size);
  line-height: var(--tp-caption-lh);
}
@media (min-width: 900px) {
  .lp-mapa__cartao {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  }
  .lp-mapa__quadro {
    aspect-ratio: 16 / 11;
    border-bottom: 0;
    border-right: 1px solid var(--tp-border);
  }
  .lp-mapa__info {
    padding: var(--tp-space-8);
  }
}
.lp-mapa__chao {
  fill: var(--tp-bg);
}
.lp-mapa__parque {
  fill: var(--tp-violeta-08);
  stroke: var(--tp-border);
  stroke-width: 1;
}
.lp-mapa__bordas path,
.lp-mapa__vias path,
.lp-mapa__destaque path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.lp-mapa__bordas path {
  stroke: var(--tp-border);
}
.lp-mapa__vias path {
  stroke: var(--tp-surface);
}
.lp-mapa__destaque-borda {
  stroke: var(--tp-violeta-player);
}
.lp-mapa__destaque-via {
  stroke: var(--tp-surface);
}
.lp-mapa__destaque-eixo {
  stroke: var(--tp-violeta-glow);
  opacity: 0.6;
}
.lp-mapa__rua,
.lp-mapa__bairro {
  font-family: var(--tp-font-text);
  fill: var(--tp-text-secondary);
  stroke: var(--tp-bg);
  stroke-width: 3px;
  paint-order: stroke;
  stroke-linejoin: round;
}
.lp-mapa__rua {
  font-size: 12px;
  font-weight: 500;
}
@media (min-width: 900px) {
  .lp-mapa__rua {
    font-size: 10px;
  }
}
.lp-mapa__bairro {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.24em;
}
.lp-mapa__alfinete {
  fill: var(--tp-violeta-player);
  stroke: var(--tp-bg);
  stroke-width: 1.5px;
}
.lp-mapa__miolo {
  fill: var(--tp-bg);
}
.lp-mapa__onda {
  fill: none;
  stroke: var(--tp-violeta-player);
  stroke-width: 2px;
  transform-box: fill-box;
  transform-origin: center;
  animation: lp-mapa-onda calc(4 * var(--tp-dur-varre)) var(--tp-ease) infinite;
}
@keyframes lp-mapa-onda {
  0% {
    opacity: 0.9;
    transform: scale(0.4);
  }
  80%,
  100% {
    opacity: 0;
    transform: scale(2.4);
  }
}
.lp-parado .lp-mapa__onda {
  animation: none;
  opacity: 0.5;
  transform: scale(1.2);
}
.lp-mapa__tag {
  fill: var(--tp-violeta-player);
}
.lp-mapa__tag-t {
  font-family: var(--tp-font-display);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.08em;
  fill: var(--tp-text-on-violeta);
}

/* ── o estado parado ── */
.lp-parado .lp-cena {
  height: auto;
}
.lp-parado .lp-quadro {
  position: relative;
  height: auto;
  min-height: 100vh;
  min-height: 100svh;
  overflow: visible;
  overflow-x: clip;
}
.lp-parado .lp-dupla .lp-quadro {
  display: grid;
}
.lp-parado .lp-plano {
  position: relative;
  inset: auto;
  opacity: 1 !important;
  --pt: 1 !important;
  --ps: 1 !important;
}
.lp-parado .lp-plano > * {
  opacity: 1 !important;
}
.lp-parado .lp-titulo {
  --pt: 1 !important;
}
.lp-parado .lp-sala__chao {
  min-height: 46vh;
  transform: none !important;
}
.lp-parado .lp-maq__palco {
  transform: none !important;
}
.lp-parado .lp-linhas {
  overflow: visible;
  gap: var(--tp-space-3);
}
.lp-parado .lp-linhas > p {
  grid-area: auto;
  opacity: 1;
  transform: none;
}
.lp-parado .lp-mira,
.lp-parado .lp-rola {
  display: none;
}
.lp-parado .lp-entra {
  opacity: 1;
  transform: none;
  transition: none;
}
.lp-parado .lp-pe__logo {
  opacity: 1;
  transition: none;
}
.lp-parado .lp-lugar__scan,
.lp-parado .lp-rola .lp-i,
.lp-parado .lp-ventoinha,
.lp-parado .lp-cel__p::after {
  animation: none;
}
.lp-parado .lp-comp .lp-quadro {
  min-height: 100svh;
}
.lp-parado .lp-comp__palco {
  min-height: 60vh;
}
.lp-parado .lp-chave {
  opacity: 0.18 !important;
  transform: none !important;
}
.lp-parado .lp-chave [data-r],
.lp-parado .lp-caminho {
  stroke-dashoffset: 0 !important;
}
.lp-parado .lp-placa,
.lp-parado .lp-placar {
  display: none;
}
.lp-parado .lp-trofeu {
  opacity: 1 !important;
  --ts: 1 !important;
}
.lp-parado .lp-aura {
  opacity: 0.6 !important;
}
.lp-parado .lp-trofeu path {
  stroke-dashoffset: 0 !important;
}
.lp-parado .lp-letreiro {
  transform: none;
}
.lp-parado .lp-passo__n {
  --enche: 100% !important;
  -webkit-text-stroke-color: var(--tp-violeta-glow);
}
.lp-parado .lp-passo__t .lp-i path {
  stroke-dashoffset: 0;
}
.lp-parado .lp-fio::after {
  transform: none;
}
.lp-parado .lp-heroi__sala {
  opacity: 0.6 !important;
}

@media (max-width: 1024px) {
  .lp-quatro {
    grid-template-columns: repeat(2, 1fr);
  }
  .lp-maq {
    grid-template-columns: 1fr;
    gap: var(--tp-space-6);
    align-content: center;
  }
  .lp-maq__palco {
    max-width: 640px;
  }
}
@media (max-width: 640px) {
  :root {
    --lp-m: var(--tp-page-margin-mobile);
  }
  .lp-heroi__h1 {
    font-size: clamp(40px, 12vw, 56px);
  }
  .lp-lede {
    font-size: 17px;
  }
  .lp-heroi__sai,
  .lp-heroi__sai .lp-acoes {
    width: 100%;
  }
  .lp-heroi__sai .tp-btn--primary {
    width: 100%;
  }
  .lp-titulo {
    font-size: clamp(36px, 13vw, 56px) !important;
  }
  .lp-linhas > p {
    font-size: 18px;
  }
  .lp-sala {
    padding-top: 84px;
    padding-bottom: 64px;
  }
  .lp-lugar:not(.lp-alvo) .lp-lugar__pc {
    display: none;
  }
  .lp-alvo .lp-lugar__pc {
    font-size: var(--tp-caption-size);
  }
  .lp-maq {
    padding-top: 84px;
    grid-template-rows: auto auto;
  }
  .lp-maq__palco {
    order: -1;
    transform: rotateY(calc(var(--gira, 0) * 4deg));
  }
  .lp-chave--larga {
    display: none;
  }
  .lp-chave--cel {
    display: block;
  }
  .lp-placa {
    top: 34%;
    font-size: 18px;
  }
  .lp-placa--a {
    right: auto;
    left: 50%;
    margin: 0;
    transform: translateX(-50%);
  }
  .lp-placa--b {
    left: 50%;
    margin: 0;
    top: calc(34% + 64px);
    transform: translateX(-50%);
  }
  .lp-placar {
    top: calc(34% + 136px);
  }
  .lp-quatro {
    grid-template-columns: 1fr;
  }
  .lp-passo {
    gap: var(--tp-space-4);
  }
  .lp-passo__n {
    font-size: 24vw;
  }
  .lp-gg {
    font-size: 40vw;
  }
  .lp-letreiro {
    font-size: 22vw;
  }
  .lp-top__nav .tp-btn {
    padding: 0 12px;
  }
  .lp-pe__links {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .lp-pe__links a {
    display: inline-flex;
    align-items: center;
    min-height: var(--tp-space-12);
  }
}
