/*! Desenvolvido por MTHBARROS · mthbarros.com.br | Agência Fellow Ship · agenciafellowship.com.br */
@font-face { font-family: "Dela Gothic One"; src: url("../fonts/dela-gothic-one.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("../fonts/instrument-sans.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }

:root {
  --azul: #0626d4;
  --vermelho: #f40614;
  --ambar: #fca404;
  --cinza: #a49cac;
  --preto: #040406;
  --papel: #f6f2e9;
  --branco: #fff;
  --traco: 3px;
  --mola: cubic-bezier(.2, 1.45, .35, 1);
  --saida: cubic-bezier(.16, 1, .3, 1);
  --display: "Dela Gothic One", "Arial Black", sans-serif;
  --texto: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

html:not(.lenis) { scroll-behavior: smooth; }
html.lenis, html.lenis body { height: auto; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }

body { background: var(--azul); color: var(--preto); font-family: var(--texto); font-size: 1.0625rem; line-height: 1.5; overflow-x: clip; -webkit-font-smoothing: antialiased; }
body.carregando { overflow: hidden; }
.sprite { position: absolute; width: 0; height: 0; }
.largura { width: min(100% - 2.5rem, 1280px); margin-inline: auto; }
.pular { position: fixed; left: 1rem; top: -4rem; z-index: 100; padding: .6rem 1rem; background: var(--branco); border: var(--traco) solid var(--preto); border-radius: 10px; font-weight: 700; }
.pular:focus { top: 1rem; }

/* ---------- peças comuns ---------- */
.titulo { font-family: var(--display); font-weight: 400; font-size: clamp(2.5rem, 7.4vw, 6.6rem); line-height: 1.02; text-transform: uppercase; letter-spacing: -.02em; }
.titulo-claro { color: var(--branco); text-shadow: .05em .05em 0 var(--preto); }
.sobre-titulo { display: inline-block; margin-bottom: 1.2rem; padding: .3rem .85rem; background: var(--preto); color: var(--branco); border-radius: 999px; font-size: .9rem; font-weight: 600; }

.botao { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: .7rem 1.6rem; background: var(--branco); color: var(--preto); border: var(--traco) solid var(--preto); border-radius: 999px; box-shadow: 5px 5px 0 var(--preto); font-weight: 700; line-height: 1.1; text-align: center; transition: translate .22s var(--mola), box-shadow .22s var(--mola); }
.botao-azul { background: var(--azul); color: var(--branco); }
.botao-ambar { background: var(--ambar); }
.botao-p { min-height: 44px; padding: .45rem 1.1rem; font-size: .95rem; box-shadow: 3px 3px 0 var(--preto); }
.botao-g { min-height: 74px; padding: 1rem 2.8rem; font-size: 1.25rem; box-shadow: 8px 8px 0 var(--preto); }
.botao:active { translate: 3px 3px; box-shadow: 1px 1px 0 var(--preto); }
@media (hover: hover) {
  .botao:hover { translate: -2px -3px; box-shadow: 8px 8px 0 var(--preto); }
  .botao-p:hover { box-shadow: 5px 6px 0 var(--preto); }
  .botao-g:hover { box-shadow: 11px 11px 0 var(--preto); }
}

/* surgir ao rolar */
.js [data-surgir] { opacity: 0; translate: 0 46px; rotate: var(--giro, 1.5deg); transition: opacity .45s linear, translate .85s var(--mola), rotate .85s var(--mola); }
.js [data-surgir].visivel { opacity: 1; translate: 0 0; rotate: 0deg; }

/* estrelas */
.e-vermelha { fill: var(--vermelho); }
.e-ambar { fill: var(--ambar); }
.e-azul { fill: var(--azul); }
.e-branca { fill: var(--branco); }
.estrela-solta { position: absolute; width: clamp(70px, 11vw, 170px); height: clamp(70px, 11vw, 170px); pointer-events: none; }

/* ---------- carregador ---------- */
.carregador { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; pointer-events: none; }
.carregador i { position: absolute; inset: 0; transition: translate .7s var(--saida); }
.carregador i:nth-child(1) { background: var(--ambar); transition-delay: .16s; }
.carregador i:nth-child(2) { background: var(--vermelho); transition-delay: .08s; }
.carregador i:nth-child(3) { background: var(--azul); }
.carregador img { position: relative; width: clamp(110px, 18vmin, 170px); animation: carregador-pula .55s ease-in-out infinite alternate; transition: scale .3s ease-in; }
body:not(.carregando) .carregador { display: none; }
body.pronto .carregador i { translate: 0 -101%; }
body.pronto .carregador img { scale: 0; }
@keyframes carregador-pula { to { translate: 0 -14px; rotate: 6deg; } }

/* ---------- topo ---------- */
.topo { position: fixed; top: 14px; left: 50%; z-index: 50; display: flex; align-items: center; gap: clamp(.6rem, 2vw, 1.8rem); width: min(100% - 1.5rem, 980px); margin-left: calc(min(100% - 1.5rem, 980px) / -2); padding: 6px 8px 6px 7px; background: var(--papel); border: var(--traco) solid var(--preto); border-radius: 999px; box-shadow: 4px 4px 0 var(--preto); transition: translate .45s var(--saida); }
.topo.escondido { translate: 0 calc(-100% - 26px); }
.topo-marca { display: flex; align-items: center; gap: .55rem; margin-right: auto; font-family: var(--display); font-size: .74rem; line-height: 1.02; text-transform: uppercase; }
.topo-marca img { width: 42px; height: 42px; transition: rotate .6s var(--mola); }
.topo-nav { display: flex; gap: clamp(.9rem, 2vw, 1.7rem); font-weight: 600; font-size: .98rem; }
.topo-nav a { position: relative; padding: .3rem 0; }
.topo-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--vermelho); border-radius: 3px; scale: 0 1; transform-origin: left; transition: scale .35s var(--saida); }
@media (hover: hover) {
  .topo-marca:hover img { rotate: 360deg; }
  .topo-nav a:hover::after { scale: 1 1; }
}
.menu-botao { display: none; position: relative; width: 44px; height: 44px; background: var(--preto); border-radius: 50%; flex: none; }
.menu-botao i { position: absolute; left: 12px; right: 12px; top: 50%; height: 3px; margin-top: -1.5px; background: var(--branco); border-radius: 3px; translate: 0 -4px; transition: translate .3s var(--saida), rotate .3s var(--saida); }
.menu-botao i + i { translate: 0 4px; }
.menu-botao[aria-expanded="true"] i { translate: 0 0; rotate: 45deg; }
.menu-botao[aria-expanded="true"] i + i { rotate: -45deg; }

.menu { position: fixed; inset: 0; z-index: 45; display: grid; align-items: center; padding: 6rem 1.5rem 3rem; background: var(--ambar); clip-path: circle(0 at calc(100% - 44px) 44px); transition: clip-path .6s var(--saida); }
.menu[hidden] { display: none; }
.menu.aberto { clip-path: circle(150% at calc(100% - 44px) 44px); }
.menu nav { display: grid; gap: .9rem; }
.menu a { font-family: var(--display); font-size: clamp(1.9rem, 9vw, 3.2rem); line-height: 1.08; text-transform: uppercase; color: var(--branco); text-shadow: .06em .06em 0 var(--preto); }

/* ---------- a sala: o elefante cresce até não caber ---------- */
.sala { position: relative; height: 300svh; background: var(--azul); }
.sala-palco { --d0: min(80vw, 52svh); --fs1: min(13.4vw, 24svh); --fs2: min(17vw, 26svh); position: sticky; top: 0; height: 100svh; overflow: hidden; background-color: var(--azul); background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px); background-size: 56px 56px; }
.sala-titulo { font: inherit; }
.sala-linha { position: absolute; left: 0; right: 0; display: flex; justify-content: center; font-family: var(--display); line-height: 1; color: var(--ambar); text-shadow: .045em .045em 0 var(--preto); white-space: pre; }
.sala-linha-1 { z-index: 1; top: calc(50% - var(--d0) / 2 - var(--fs1) * .72); font-size: var(--fs1); }
.sala-linha-2 { z-index: 3; top: calc(50% + var(--d0) / 2 - var(--fs2) * .3); font-size: var(--fs2); color: var(--branco); }
.letra { display: inline-block; will-change: transform; }
.letra i { display: inline-block; font-style: normal; }
.js .letra i { translate: 0 70%; rotate: 16deg; opacity: 0; transition: translate .9s var(--mola), rotate .9s var(--mola), opacity .2s linear; transition-delay: calc(var(--i) * 34ms + .16s); }
.pronto .letra i { translate: 0 0; rotate: 0deg; opacity: 1; }

.sala-elefante { --dim: 170vmin; position: absolute; z-index: 2; left: 50%; top: 50%; width: var(--dim); height: var(--dim); margin: calc(var(--dim) / -2) 0 0 calc(var(--dim) / -2); transform: scale(.3); will-change: transform; }
.sala-entra { width: 100%; height: 100%; border-radius: 50%; box-shadow: calc(var(--dim) * .0176) calc(var(--dim) * .0176) 0 var(--preto); cursor: pointer; }
.sala-entra picture { display: contents; }
.js .sala-entra { scale: 0; rotate: -40deg; transition: scale 1.05s var(--mola), rotate 1.05s var(--mola); transition-delay: .12s; }
.pronto .sala-entra { scale: 1; rotate: 0deg; }
.sala-entra img { width: 100%; height: 100%; user-select: none; animation: elefante-balanca 4.2s ease-in-out infinite alternate; }
@keyframes elefante-balanca { from { rotate: -2.4deg; } to { rotate: 2.4deg; } }
@keyframes elefante-balanca-toque { 25% { rotate: -2.4deg; } 75% { rotate: 2.4deg; } }
.sala-crescendo .sala-entra, .sala-crescendo .sala-entra img { animation-play-state: paused; }
/* o que já saiu de cena não gasta quadro */
.sala-longe .sala-titulo, .sala-longe .estrela { visibility: hidden; }
.sala-longe .estrela, .sala-longe .sala-dica span { animation: none; }
.sala-longe .letra { will-change: auto; }

.estrela { position: absolute; z-index: 0; left: var(--x); top: var(--y); width: var(--t); height: var(--t); margin: calc(var(--t) / -2) 0 0 calc(var(--t) / -2); pointer-events: none; will-change: transform; animation: estrela-gira 14s linear infinite; }
@keyframes estrela-gira { to { rotate: 360deg; } }
.js .estrela { opacity: 0; transition: opacity .4s linear .7s; }
.pronto .estrela { opacity: 1; }

.sala-extras { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.sala-extras a { pointer-events: auto; }
.adesivo { position: absolute; padding: .55rem 1rem; border: var(--traco) solid var(--preto); border-radius: 14px; box-shadow: 4px 4px 0 var(--preto); font-weight: 700; line-height: 1.12; font-size: clamp(.92rem, 1.25vw, 1.15rem); }
.adesivo small { font-size: .82em; font-weight: 600; }
.adesivo-a { left: clamp(.9rem, 7vw, 8rem); top: 47%; background: var(--papel); rotate: -6deg; }
.adesivo-b { right: clamp(.9rem, 6vw, 7rem); top: 43%; background: var(--vermelho); color: var(--branco); rotate: 5deg; transition: scale .3s var(--mola); }
@media (hover: hover) { .adesivo-b:hover { scale: 1.08; } }
.js .adesivo { opacity: 0; scale: .5; transition: opacity .25s linear .95s, scale .7s var(--mola) .95s; }
.pronto .adesivo { opacity: 1; scale: 1; }
.sala-dica { position: absolute; left: 50%; bottom: 14px; translate: -50% 0; padding: .2rem .8rem; background: var(--preto); color: var(--branco); border-radius: 999px; font-size: .86rem; font-weight: 600; white-space: nowrap; }
.sala-dica span { display: inline-block; animation: dica-desce 1s ease-in-out infinite alternate; }
@keyframes dica-desce { to { translate: 0 4px; } }

.sala-frase { position: absolute; z-index: 5; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .08em; padding: 0 1rem; font-family: var(--display); font-size: clamp(2.5rem, 6.3vw, 6.8rem); line-height: 1.02; text-transform: uppercase; text-align: center; color: var(--branco); text-shadow: .055em .055em 0 var(--preto); pointer-events: none; }
.sala-frase span { display: block; opacity: 0; }
.sala-longe .sala-frase span { will-change: transform, opacity; }
.sala-fim { position: absolute; z-index: 6; inset: 0; background: var(--cinza); opacity: 0; pointer-events: none; }

.sem-movimento .sala { height: 100svh; }
.sem-movimento .sala-frase { display: none; }

/* ---------- manifesto ---------- */
.manifesto { position: relative; z-index: 1; padding: clamp(5rem, 12vw, 10rem) 0 clamp(6rem, 13vw, 11rem); background: var(--cinza); overflow: clip; }
.manifesto-frase { max-width: 17ch; font-size: clamp(2.8rem, 8.2vw, 7.6rem); font-weight: 600; line-height: 1; letter-spacing: -.05em; }
.palavra { color: rgba(4, 4, 6, .2); transition: color .25s linear; }
.palavra.acesa { color: var(--preto); }
.palavra em { font-family: var(--display); font-style: normal; font-weight: 400; letter-spacing: -.02em; text-transform: uppercase; }
.palavra.acesa em { color: var(--azul); }
.manifesto-texto { max-width: 46ch; margin: clamp(2rem, 4vw, 3.5rem) 0 0 auto; font-size: clamp(1.1rem, 1.7vw, 1.4rem); font-weight: 500; line-height: 1.4; }
.manifesto .estrela-solta { right: 6%; top: 11%; }

/* ---------- fitas ---------- */
.fitas { position: relative; z-index: 2; height: clamp(170px, 20vw, 290px); background: linear-gradient(var(--cinza) 50%, var(--papel) 50%); overflow: hidden; }
.fita { position: absolute; left: -5%; right: -5%; top: 50%; padding: .5em 0; border-block: var(--traco) solid var(--preto); font-family: var(--display); font-size: clamp(1.1rem, 2.6vw, 2.3rem); line-height: 1; text-transform: uppercase; white-space: nowrap; }
.fita-azul { background: var(--azul); color: var(--branco); rotate: -3.4deg; translate: 0 -92%; z-index: 1; }
.fita-ambar { background: var(--ambar); rotate: 2.6deg; translate: 0 -8%; }
.fita-trilho { display: flex; width: max-content; will-change: transform; }
.fita-trilho > span { display: inline-flex; align-items: center; gap: .6em; flex: none; padding-right: .6em; }
.fita svg { width: 1em; height: 1em; flex: none; fill: currentColor; }
.fita-azul svg { fill: var(--ambar); }
.fita-ambar svg { fill: var(--vermelho); }

/* ---------- coleção ---------- */
.colecao { position: relative; z-index: 1; padding: clamp(4rem, 8vw, 7rem) 0 clamp(5rem, 10vw, 9rem); background: var(--papel); overflow: clip; }
.colecao-topo { max-width: 860px; }
.colecao-texto { max-width: 48ch; margin-top: 1.6rem; font-size: clamp(1.1rem, 1.6vw, 1.32rem); font-weight: 500; line-height: 1.42; }
.rabiscado { position: relative; display: inline-block; color: var(--vermelho); }
.rabiscado svg { position: absolute; left: 0; right: 0; bottom: -.16em; width: 100%; height: .2em; overflow: visible; fill: none; stroke: var(--azul); stroke-width: 7; stroke-linecap: round; }
.rabiscado path { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.2s var(--saida) .55s; }
.visivel .rabiscado path { stroke-dashoffset: 0; }

.colagem { position: relative; display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(1rem, 2.4vw, 2rem); margin-top: clamp(3rem, 7vw, 6rem); align-items: start; }
.colagem-item { will-change: transform; }
.colagem-a { grid-column: 1 / span 4; }
.colagem-b { grid-column: 5 / span 5; margin-top: clamp(3rem, 9vw, 8rem); }
.colagem-c { grid-column: 10 / span 3; margin-top: clamp(1rem, 3vw, 3rem); }
.colagem-estrela { right: 28%; top: -3%; }
.foto a { display: block; overflow: hidden; border: var(--traco) solid var(--preto); border-radius: 22px; box-shadow: 8px 8px 0 var(--preto); transition: translate .3s var(--mola), box-shadow .3s var(--mola); }
.foto img { width: 100%; }
.foto figcaption { margin-top: 1rem; font-weight: 600; line-height: 1.25; }
@media (hover: hover) { .foto a:hover { translate: -4px -5px; box-shadow: 13px 13px 0 var(--vermelho); } }

/* xadrez: o padrão das artes */
.xadrez { position: relative; z-index: 2; height: 48px; background: conic-gradient(var(--azul) 25%, var(--branco) 0 50%, var(--azul) 0 75%, var(--branco) 0) 0 0 / 48px 48px; border-block: var(--traco) solid var(--preto); }
.xadrez-ambar { background-image: conic-gradient(var(--preto) 25%, var(--ambar) 0 50%, var(--preto) 0 75%, var(--ambar) 0); }

/* ---------- bastidores: horizontal; no celular é arrastar ---------- */
/* ---------- pré-venda ---------- */
.prevenda { position: relative; z-index: 1; padding: clamp(4.5rem, 9vw, 8rem) 0; background: var(--preto); color: var(--branco); overflow: clip; }
.prevenda-grade { position: relative; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.prevenda .sobre-titulo { background: var(--branco); color: var(--preto); }
.prevenda .titulo { font-size: clamp(2.5rem, 5.2vw, 5rem); text-shadow: none; }
.prevenda .titulo span { display: block; color: var(--ambar); white-space: nowrap; }
.prevenda-p { max-width: 42ch; margin-top: 1.6rem; font-size: clamp(1.1rem, 1.6vw, 1.32rem); font-weight: 500; line-height: 1.42; }
.prevenda-contagem { max-width: 30rem; margin-top: 1.6rem; }
.prevenda .contagem div { border-color: var(--branco); }
.prevenda-acao { margin-top: clamp(1.6rem, 3vw, 2.4rem); }
.prevenda .botao { border-color: var(--branco); box-shadow: 8px 8px 0 var(--vermelho); }
@media (hover: hover) { .prevenda .botao:hover { box-shadow: 11px 11px 0 var(--vermelho); } }
.prevenda .botao:active { box-shadow: 2px 2px 0 var(--vermelho); }
.prevenda-arte { position: relative; width: min(100%, 320px); justify-self: center; }
.prevenda .foto a { border-color: var(--branco); box-shadow: 8px 8px 0 var(--azul); }
.prevenda-selo { position: absolute; left: clamp(-4.2rem, -6vw, -2rem); bottom: -1.6rem; width: clamp(120px, 14vw, 180px); height: auto; overflow: visible; pointer-events: none; }
.prevenda-selo circle { fill: var(--ambar); stroke: var(--preto); stroke-width: 4; }
.prevenda-selo text { fill: var(--preto); font-family: var(--display); font-size: 19px; }
.prevenda-selo use { fill: var(--vermelho); }
.prevenda-e1 { right: 4%; top: 6%; }
.prevenda-e2 { left: 2%; bottom: -3%; width: clamp(50px, 8vw, 120px); height: clamp(50px, 8vw, 120px); }

.bastidores { --alt: min(58svh, 560px); position: relative; background: var(--azul); }
.bastidores-palco { padding: clamp(3.5rem, 8vw, 5rem) 0; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
.bastidores-palco::-webkit-scrollbar { display: none; }
.bastidores-trilho { display: flex; align-items: center; gap: clamp(1.2rem, 3vw, 2.6rem); width: max-content; padding-inline: 1.25rem; }
.bastidores.pin .bastidores-palco { position: sticky; top: 0; height: 100svh; display: flex; align-items: center; padding: 0; overflow: hidden; }
.bastidores.pin .bastidores-trilho { padding-inline: clamp(2rem, 6vw, 6rem); will-change: transform; }
.bastidores-abertura { flex: none; width: min(84vw, 660px); scroll-snap-align: center; }
.bastidores-abertura .sobre-titulo { background: var(--ambar); color: var(--preto); }
.bastidores-abertura .titulo { font-size: clamp(2rem, 4.5vw, 4.2rem); }
.bastidores-arraste { display: inline-block; margin-top: 1.1rem; padding: .25rem .8rem; background: var(--branco); border-radius: 999px; font-size: .9rem; font-weight: 600; }
.bastidores.pin .bastidores-arraste { display: none; }
.bastidores-nem { margin-top: 1rem; color: var(--branco); font-size: clamp(1.2rem, 2vw, 1.6rem); font-weight: 600; }
.cartao { flex: none; display: block; width: min-content; color: var(--branco); scroll-snap-align: center; transition: translate .35s var(--mola); }
.cartao:nth-of-type(odd) { rotate: -1.4deg; translate: 0 -2.4svh; }
.cartao:nth-of-type(even) { rotate: 1.2deg; translate: 0 2.4svh; }
.cartao img { width: auto; max-width: none; height: var(--alt); border: var(--traco) solid var(--preto); border-radius: 20px; box-shadow: 8px 8px 0 var(--preto); }
.cartao span { display: block; margin-top: .9rem; font-weight: 600; line-height: 1.22; }
@media (hover: hover) { .cartao:hover { translate: 0 -4svh; } }
.bastidores-fim { position: relative; flex: none; display: grid; place-items: center; width: clamp(250px, 32vw, 400px); aspect-ratio: 1; scroll-snap-align: center; transition: scale .4s var(--mola); }
.bastidores-fim svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: var(--vermelho); animation: estrela-gira 22s linear infinite; }
.bastidores-fim span { position: relative; display: grid; gap: .3rem; width: 52%; text-align: center; color: var(--branco); font-family: var(--display); font-size: clamp(.9rem, 1.5vw, 1.2rem); line-height: 1.08; text-transform: uppercase; }
.bastidores-fim small { font-family: var(--texto); font-size: .82em; font-weight: 600; text-transform: none; }
@media (hover: hover) { .bastidores-fim:hover { scale: 1.07; } }

/* ---------- festa: bilhete ---------- */
.festa { position: relative; z-index: 1; padding: clamp(4.5rem, 9vw, 8rem) 0 clamp(5rem, 10vw, 9rem); background: var(--ambar); overflow: clip; }
.festa-data { position: relative; text-align: center; }
.festa-sobre { font-family: var(--display); font-size: clamp(1.5rem, 4.2vw, 3.6rem); line-height: 1.05; text-transform: uppercase; color: var(--branco); text-shadow: .06em .06em 0 var(--preto); }
.festa-sobre-p { font-size: clamp(1rem, 2.5vw, 2.1rem); }
.festa-faixa { position: relative; margin: .1em 0 .4em; }
.festa-faixa::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 30%; translate: 0 -50%; background: var(--azul); }
.festa-numero { position: relative; font-family: var(--display); font-size: clamp(6rem, 30vw, 27rem); line-height: 1; color: var(--branco); text-shadow: .035em .035em 0 var(--preto); will-change: transform; }
.festa-e1 { left: 5%; top: 8%; }
.festa-e2 { right: 6%; bottom: -3%; }

.js .bilhete[data-surgir] { transition: opacity .45s linear, translate .85s var(--mola), rotate .85s var(--mola), transform .25s ease-out; }
.bilhete { position: relative; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); margin-top: clamp(2.5rem, 6vw, 5rem); background: var(--papel); border: var(--traco) solid var(--preto); border-radius: 30px; box-shadow: 12px 12px 0 var(--preto); }
.bilhete-arte { display: flex; flex-direction: column; justify-content: center; gap: 1.3rem; padding: clamp(1.4rem, 3vw, 2.6rem); border-right: var(--traco) dashed var(--preto); position: relative; }
.bilhete-arte::before, .bilhete-arte::after { content: ""; position: absolute; right: -19px; width: 34px; height: 34px; background: var(--ambar); border: var(--traco) solid var(--preto); border-radius: 50%; }
.bilhete-arte::before { top: -19px; clip-path: inset(50% -3px -3px -3px); }
.bilhete-arte::after { bottom: -19px; clip-path: inset(-3px -3px 50% -3px); }
.bilhete-arte img { width: 100%; max-width: 428px; margin-inline: auto; border: var(--traco) solid var(--preto); border-radius: 14px; }
.bilhete-arte p { font-family: var(--display); font-size: clamp(.95rem, 1.5vw, 1.2rem); line-height: 1.16; text-transform: uppercase; text-align: center; }
.bilhete-dados { padding: clamp(1.4rem, 3.4vw, 3rem); }
.bilhete-titulo { font-family: var(--display); font-weight: 400; font-size: clamp(1.5rem, 3.3vw, 2.9rem); line-height: 1.06; text-transform: uppercase; }
.contagem { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(.4rem, 1vw, .8rem); margin-top: 1.4rem; }
.contagem div { padding: .5rem .2rem .45rem; background: var(--azul); color: var(--branco); border: var(--traco) solid var(--preto); border-radius: 14px; text-align: center; }
.contagem b { display: block; font-family: var(--display); font-weight: 400; font-size: clamp(1.45rem, 3.6vw, 3rem); line-height: 1.1; font-variant-numeric: tabular-nums; }
.contagem b.bate { animation: contagem-bate .35s var(--mola); }
@keyframes contagem-bate { from { translate: 0 -.16em; scale: 1.1; } }
.contagem span { font-size: .84rem; font-weight: 600; }
.contagem-fim { grid-column: 1 / -1; padding: .9rem 1rem !important; font-family: var(--display); font-size: clamp(1.05rem, 2vw, 1.5rem); text-transform: uppercase; line-height: 1.1; }
.bilhete-lista { display: grid; margin-top: 1.5rem; }
.bilhete-lista div { display: grid; grid-template-columns: 6.2rem 1fr; gap: .6rem; padding: .7rem 0; border-top: 2px solid var(--preto); }
.bilhete-lista dt { font-weight: 700; }
.bilhete-lista dd { font-weight: 500; line-height: 1.3; }
.bilhete-acoes { display: flex; flex-wrap: wrap; gap: .9rem 1.1rem; margin-top: 1.4rem; }

/* ---------- pinta o elefante ---------- */
.pinta { position: relative; z-index: 1; padding: clamp(5rem, 10vw, 9rem) 0; background: var(--papel); overflow: clip; }
.pinta-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.pinta .titulo { font-size: clamp(2.4rem, 5.6vw, 5rem); }
.pinta-p { margin-top: 1.2rem; max-width: 42ch; font-size: clamp(1.08rem, 1.5vw, 1.25rem); font-weight: 500; line-height: 1.4; }
.pinta-p a { color: var(--azul); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.cores { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.6rem; }
.cores button { width: 46px; height: 46px; background: var(--c); border: var(--traco) solid var(--preto); border-radius: 50%; transition: scale .25s var(--mola), box-shadow .2s; }
.cores button[aria-pressed="true"] { scale: 1.16; box-shadow: 3px 3px 0 var(--preto); }
@media (hover: hover) { .cores button:hover { scale: 1.16; } }
.pinta-acoes { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.5rem; }
.tutorial { display: flex; align-items: center; gap: 1rem; max-width: 430px; margin-top: 2rem; padding: .7rem; background: var(--branco); border: var(--traco) solid var(--preto); border-radius: 16px; box-shadow: 4px 4px 0 var(--preto); font-weight: 600; line-height: 1.22; }
.tutorial img { width: 66px; flex: none; border-radius: 8px; border: 2px solid var(--preto); }
.tutorial small { display: block; margin-top: .25rem; font-weight: 500; }
.pinta-tela { position: relative; aspect-ratio: 1; width: min(100%, 620px); justify-self: center; background: var(--branco); border-radius: 50%; box-shadow: 12px 12px 0 var(--preto); }
.pinta-tela canvas { width: 100%; height: 100%; border-radius: 50%; cursor: pointer; touch-action: manipulation; }
.pinta-tela img { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; user-select: none; }
.pinta-dica { position: absolute; right: 2%; top: 4%; padding: .3rem .8rem; background: var(--vermelho); color: var(--branco); border: var(--traco) solid var(--preto); border-radius: 12px; font-weight: 700; rotate: 8deg; pointer-events: none; animation: dica-pula .7s ease-in-out infinite alternate; transition: opacity .3s; }
@keyframes dica-pula { to { translate: 0 -8px; } }
.pinta-tela.usada .pinta-dica { opacity: 0; }

/* ---------- vip ---------- */
.vip { position: relative; z-index: 1; padding: clamp(6rem, 12vw, 11rem) 0; background: var(--vermelho); color: var(--branco); text-align: center; overflow: clip; }
.vip-titulo { display: grid; justify-items: center; font: inherit; }
.vip-grupo, .vip-vip, .vip-nome { display: block; font-family: var(--display); text-transform: uppercase; text-shadow: .05em .05em 0 var(--preto); }
.vip-grupo { font-size: clamp(3.6rem, 13vw, 11rem); line-height: 1; }
.vip-nome { font-size: clamp(1.15rem, 3.3vw, 2.7rem); line-height: 1.12; }
.vip-vip { font-size: clamp(7.5rem, 30vw, 25rem); line-height: .94; color: var(--ambar); text-shadow: .035em .035em 0 var(--preto); }
.vip-acao { margin-top: clamp(2.2rem, 5vw, 3.6rem); }
.magnetico { will-change: transform; transition: translate .22s var(--mola), box-shadow .22s var(--mola), transform .25s ease-out; }
.vip-e1 { left: 7%; top: 10%; }
.vip-e2 { right: 7%; bottom: 12%; }

/* ---------- rodapé ---------- */
.rodape { position: relative; z-index: 1; padding: clamp(3rem, 6vw, 5rem) 0 4.2rem; background: var(--preto); color: var(--branco); }
.rodape-marca { display: grid; justify-items: center; white-space: nowrap; font-family: var(--display); line-height: 1.02; text-transform: uppercase; }
.rodape-marca span:first-child { font-size: min(12.4vw, 10.8rem); color: var(--ambar); }
.rodape-marca span:last-child { font-size: min(15.6vw, 13.4rem); color: var(--cinza); }
.rodape-linha { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .9rem 2rem; margin-top: clamp(1.6rem, 4vw, 3rem); padding-top: 1.2rem; border-top: 2px solid rgba(255, 255, 255, .22); font-weight: 500; }
.rodape-linha nav { display: flex; flex-wrap: wrap; gap: 1.4rem; font-weight: 700; }
.rodape-linha a { transition: color .2s; }
.rodape-credito { margin-top: 1.2rem; font-size: .92rem; font-weight: 500; color: var(--cinza); }
.rodape-credito a { white-space: nowrap; color: var(--branco); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; transition: color .2s; }
@media (hover: hover) { .rodape-linha a:hover, .rodape-credito a:hover { color: var(--ambar); } }

/* ---------- elefante rolando (progresso) e cursor ---------- */
.rolante { position: fixed; left: 0; bottom: 8px; z-index: 40; width: 38px; height: 38px; pointer-events: none; will-change: transform; }
.carregando .rolante { visibility: hidden; }
.cursor { position: fixed; left: -15px; top: -15px; z-index: 80; width: 30px; height: 30px; fill: var(--vermelho); pointer-events: none; opacity: 0; transition: opacity .2s; will-change: transform; }
.cursor.ligado { opacity: 1; }
.estouro { position: fixed; left: 0; top: 0; z-index: 81; width: 22px; height: 22px; pointer-events: none; }

/* ---------- toque: uma textura só e menor, e o palco na altura maior da tela (a barra de endereço
   do navegador pode sumir sem deixar faixa azul embaixo) ---------- */
@media (pointer: coarse) {
  .sala-elefante { --dim: 130vmin; }
  .sala-entra img { animation: none; }
  .pronto .sala-entra { animation: elefante-balanca-toque 8.4s ease-in-out 1.25s infinite; }
  .sala-palco { height: 100lvh; }
  .sala-extras { bottom: auto; height: 100svh; }
}

/* ---------- celular e telas médias ---------- */
@media (max-width: 960px) {
  .prevenda-grade { grid-template-columns: minmax(0, 1fr); }
  .prevenda-arte { width: min(72%, 320px); margin-top: 1rem; }
  .prevenda-selo { left: -2.4rem; }
  .prevenda-e1 { top: 2%; }
  .topo-nav { display: none; }
  .menu-botao { display: block; }
  .colagem-a { grid-column: 1 / span 6; }
  .colagem-b { grid-column: 7 / span 6; margin-top: 4rem; }
  .colagem-c { grid-column: 3 / span 6; margin-top: 2.5rem; }
  .colagem-estrela { right: 4%; top: auto; bottom: 12%; }
  .pinta-grade { grid-template-columns: minmax(0, 1fr); }
  .pinta-tela { order: -1; }
  .pinta-texto { display: contents; }
  .pinta-texto > :nth-child(1) { justify-self: start; margin-bottom: 0; }
  .pinta-texto > * { min-width: 0; }
  .pinta-grade { gap: 1.1rem; }
  .pinta .sobre-titulo { order: -3; }
  .pinta .titulo { order: -2; margin-bottom: .8rem; }
  .pinta-p { margin-top: .6rem; }
  .cores, .pinta-acoes, .tutorial { margin-top: .4rem; }
}
@media (max-width: 760px) {
  .sala { height: 260svh; }
  .sala-palco { --d0: min(84vw, 46svh); --fs1: 13.4vw; --fs2: 17vw; background-size: 40px 40px; }
  .sala-linha-1 { top: calc(50% - var(--d0) / 2 - var(--fs1) * .9); }
  .sala-linha-2 { top: calc(50% + var(--d0) / 2 - var(--fs2) * .34); }
  .adesivo-a { left: 1rem; top: auto; bottom: 62px; }
  .adesivo-b { right: 1rem; top: 86px; }
  .sala-frase { font-size: 10.4vw; gap: .4em; }
  .manifesto-frase { font-size: clamp(2.6rem, 12.6vw, 5rem); }
  .manifesto .estrela-solta { top: 3%; right: 5%; }
  .bilhete { grid-template-columns: minmax(0, 1fr); box-shadow: 8px 8px 0 var(--preto); }
  .bilhete-arte { border-right: 0; border-bottom: var(--traco) dashed var(--preto); }
  .bilhete-arte::before, .bilhete-arte::after { top: auto; bottom: -19px; }
  .bilhete-arte::before { left: -19px; right: auto; clip-path: inset(-3px -3px -3px 50%); }
  .bilhete-arte::after { right: -19px; clip-path: inset(-3px 50% -3px -3px); }
  .bilhete-lista div { grid-template-columns: 5.2rem 1fr; }
  .bilhete-acoes .botao { flex: 1 1 100%; }
  .botao-g { width: 100%; padding-inline: 1rem; }
  .rodape-linha { flex-direction: column; align-items: flex-start; }
  .rolante { width: 30px; height: 30px; bottom: 6px; }
  .festa-e1 { top: -2%; }
  .vip-e1 { top: 3%; }
  .vip-e2 { bottom: 3%; }
}
@media (max-width: 360px) {
  .topo-marca span { display: none; }
}
