/* Palcos do Rio — identidade tirada dos mosaicos internos de Burle Marx em Copacabana.
   Pedras: calcário (chão), basalto (fita e texto), pedra vermelha (ilha), Copa (confirmação), sódio (noite).
   Gramática: fita de largura constante que entra e sai do quadro; ilha de contra-cor para o que importa;
   meio-fio de três traços. Sempre sobre o chão claro: o modo noite existe só no banner de mudanças. Sem onda, sem degradê, sem sombra difusa. */
:root{
--areia:#E3D9C2;   /* sand: rejunte e azulejos de areia */
  --chao:#EDE6D6; --chao2:#F6F1E6; --fita:#1E1C1A; --ilha:#B5452F; --ilha2:#8E3524;
  --copa:#2F5D3A; --sodio:#E3B35C; /* só no banner */ --cinza:#6B665C; --texto2:#3E3A34; --linha:#D9D1BF;
  --acento-na-fita:#E3B35C;             /* cor viva que pode ir sobre a fita */
  --sobre-sodio:#1E1C1A;
  --bg:var(--chao); --ink:var(--fita); --muted:var(--cinza); --card:var(--chao2); --line:var(--linha);
  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --sans:"Instrument Sans","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --wide:"wdth" 125,"wght" 800;
  --mid:"wdth" 110,"wght" 700;
  --hdr-h:64px;
  /* fitas (máscaras): a cor vem do background do elemento, então invertem sozinhas à noite */
  --fita-a:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 276 150'><path d='M -20 100 H 150 A 54 54 0 0 0 204 46 V -20' fill='none' stroke='black' stroke-width='30'/></svg>");
  --fita-b:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 276 150'><path d='M 296 40 H 120 A 60 60 0 0 0 60 100 V 170' fill='none' stroke='black' stroke-width='30'/></svg>");
  --fita-c:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 276 150'><path d='M -20 50 H 90 A 50 50 0 0 1 140 100 V 170' fill='none' stroke='black' stroke-width='30'/></svg>");
  --fita-d:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 276 150'><path d='M -20 60 H 60 A 40 40 0 0 1 100 100 V 170' fill='none' stroke='black' stroke-width='30'/><path d='M 296 50 H 200 A 30 30 0 0 0 170 80 V 170' fill='none' stroke='black' stroke-width='30'/></svg>");
  --gancho:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 76' preserveAspectRatio='none'><path d='M 0 54 H 60 A 36 36 0 0 0 96 18 V -20' fill='none' stroke='black' stroke-width='26'/></svg>");
  --seta-meiofio:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 28'><path d='M1 13L18 1L35 13M1 20L18 8L35 20M1 27L18 15L35 27' fill='none' stroke='black' stroke-width='2' stroke-linejoin='miter'/></svg>");
  --ouro:#D4A13B; --ouro-linha:#B3832A;   /* prêmio: dourado cheio (venceu) e contorno mais escuro (indicação); um tom abaixo do sódio da tag infantil, para o selo ser o único dourado */
  --meiofio:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 14'><path d='M0 1H60M0 7H60M0 13H60' stroke='black' stroke-width='2'/></svg>");
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--chao);color:var(--fita);font-family:var(--sans);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
a{color:var(--ilha)}
a:hover{color:var(--ilha2)}
button{font:inherit;color:inherit;cursor:pointer;border-radius:0}
svg{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
[hidden]{display:none!important}
.disp{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;letter-spacing:-.02em;line-height:1}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.rotulo{font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:12px;text-transform:uppercase;letter-spacing:.05em}

/* ---------- cabeçalho ---------- */
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;height:var(--hdr-h);padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));background:var(--chao);border-bottom:3px solid var(--fita)}
.brand{display:flex;align-items:center;gap:10px}
.brand a{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}
.simbolo{width:36px;height:36px;flex:none;stroke:none}
.simbolo .f{stroke:var(--fita);stroke-width:38;fill:none;stroke-linecap:butt}
.simbolo .i{fill:var(--ilha)}
.brand h1{margin:0;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:20px;line-height:1;text-transform:uppercase;letter-spacing:-.02em}
.bell{position:relative;width:40px;height:40px;border:2px solid var(--fita);background:var(--chao);display:inline-flex;align-items:center;justify-content:center;font-size:18px;color:var(--fita);padding:0}
.bell-dot{position:absolute;top:-6px;right:-6px;width:12px;height:12px;border-radius:50%;background:var(--ilha)}
.hdright{display:flex;align-items:center;gap:10px}
.tabs{display:flex;gap:0}
.tab{border:2px solid var(--fita);border-right-width:0;background:transparent;padding:0 16px;height:40px;font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--fita);display:inline-flex;align-items:center;gap:8px}
.tab:last-child{border-right-width:2px}
.tab.active{background:var(--fita);color:var(--chao)}
.tabn,.bnn,.fn{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:50%;background:var(--ilha);color:var(--chao);font-family:var(--mono);font-size:11px;line-height:1}
.tab.active .tabn{background:var(--chao);color:var(--fita)}
.tabn:empty,.bnn:empty,.fn:empty{display:none}
.hdrbtn{display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 14px;border:2px solid var(--fita);background:var(--chao);color:var(--fita);font-size:14px}
.hdrbtn kbd{font-family:var(--mono);font-size:11px;border:1px solid var(--fita);padding:1px 5px;color:var(--fita)}
@media (max-width:760px){.tabs{display:none}.sblabel,.hdrbtn kbd{display:none}.hdrbtn{width:40px;padding:0;justify-content:center}}
@media (min-width:761px){.brand h1{font-size:26px}.simbolo{width:44px;height:44px}.top{padding:0 32px}}

/* ---------- barra de dias e filtros ---------- */
.toolbar{position:sticky;top:var(--hdr-h);z-index:20;background:var(--chao);padding-bottom:4px}
.tbrow{display:flex;align-items:center;gap:10px;padding:10px max(16px,env(safe-area-inset-left,0px)) 0}
.days{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}
.days::-webkit-scrollbar{display:none}
.day{flex:none;width:58px;height:56px;border:2px solid var(--fita);background:var(--chao);color:var(--fita);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:0;line-height:1}
.day small{display:block;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.day b{font-family:var(--display);font-weight:800;font-variation-settings:var(--mid);font-size:20px;margin:1px 0}
.day.active{background:var(--fita);color:var(--chao)}
.day.today{position:relative}
.day.today::after{content:"";position:absolute;top:-6px;right:-6px;width:12px;height:12px;border-radius:50%;background:var(--ilha)}
.day.all{width:auto;padding:0 12px;font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.hdrfilter{flex:none;display:inline-flex;align-items:center;gap:8px;height:56px;padding:0 12px;border:2px solid var(--fita);background:var(--chao);color:var(--fita);font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.hdrfilter svg{width:18px;height:18px}
.activeq{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px 4px}
.chip{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 10px;background:var(--fita);color:var(--chao);font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.chip button{border:0;background:none;padding:0;color:inherit;font-size:16px;line-height:1}
.meiofio{height:14px;width:60px;margin:6px 16px 0;background:var(--fita);-webkit-mask:var(--meiofio) no-repeat;mask:var(--meiofio) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}

/* ---------- conteúdo ---------- */
.wrap{max-width:1184px;margin:0 auto;padding:6px max(16px,env(safe-area-inset-left,0px)) 40px;position:relative;overflow-x:hidden;overflow-x:clip}
@media (min-width:761px){.wrap{padding-left:32px;padding-right:32px}}
.view{display:none}.view.active{display:block}
.empty{padding:40px 10px;text-align:center;color:var(--texto2)}
.empty b{display:block;color:var(--fita);font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:22px;line-height:1;margin-bottom:10px}

/* faixa: título da seção sobre o chão, fita passando por baixo e saindo pelo alto à direita, ilha no fim */
.faixa{position:relative;height:76px;margin:14px 0 0;display:flex;align-items:baseline;gap:10px;white-space:nowrap;overflow:hidden;padding:6px 140px 0 0}
.faixa::before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background:var(--fita);pointer-events:none;
  -webkit-mask-image:linear-gradient(#000,#000),var(--gancho);mask-image:linear-gradient(#000,#000),var(--gancho);
  -webkit-mask-size:calc(100% - 180px) 26px,180px 76px;mask-size:calc(100% - 180px) 26px,180px 76px;
  -webkit-mask-position:left 0 top 41px,right 0 top 0;mask-position:left 0 top 41px,right 0 top 0;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.faixa .ilha{position:absolute;left:0;top:0;width:22px;height:22px;offset-rotate:0deg;offset-distance:100%;z-index:0;pointer-events:none}
.faixa .ilha:not([style]){left:auto;right:20px;top:43px}
.faixa .ilha b{display:block;width:100%;height:100%;border-radius:50%;background:var(--ilha);transform-origin:50% 100%}
.faixa>*{position:relative;z-index:1}
.faixa h2,.faixa .dh-t{margin:0;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:24px;line-height:1;text-transform:uppercase;letter-spacing:-.02em;flex:none}
.faixa small{font-family:var(--mono);font-size:12px;color:var(--texto2);overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}
.faixa .dh-hoje{display:inline-flex;align-items:center;height:20px;padding:0 7px;background:var(--ilha);color:var(--chao);font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:10px;text-transform:uppercase;letter-spacing:.06em;overflow:visible;flex:none}
@media (max-width:560px){.faixa .dh-mes{display:none}}
@media (min-width:761px){.faixa{height:92px;padding-right:190px}.faixa h2,.faixa .dh-t{font-size:34px}.faixa::before{-webkit-mask-size:calc(100% - 235px) 34px,235px 99px;mask-size:calc(100% - 235px) 34px,235px 99px;-webkit-mask-position:left 0 top 53px,right 0 top 0;mask-position:left 0 top 53px,right 0 top 0}.faixa::after{top:56px;right:16px;width:28px;height:28px}}
.hourhead{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cinza);margin:14px 0 0;padding:0 0 4px}

/* sessão (linha): nada de cartão; a linha é uma junta de 2px entre pedras */
.sess{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;padding:14px 0;border-bottom:2px solid var(--fita)}
.sess .when{font-family:var(--mono);font-variant-numeric:tabular-nums;line-height:1.1}
.sess .when b{display:block;font-size:17px;font-weight:500}
.sess .when small{display:block;color:var(--cinza);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:56px;margin-top:3px}
.sess .what{min-width:0;display:flex;flex-direction:column;gap:4px}
.sess .what .t{font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:16px;line-height:1.15;cursor:pointer}
.sess .what .t:hover{text-decoration:underline;text-decoration-thickness:2px}
.sess .what .w{color:var(--texto2);font-size:13px}
.sess .what .w2{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-family:var(--mono);font-size:12px;color:var(--texto2)}
.sess .acts{display:flex;gap:6px;align-items:center}
/* arrastar um ingresso (PDF ou foto) para qualquer ponto da página: véu com a pedra, solta e vai para a carteira */
.solta-aqui{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;background:rgba(30,28,26,.55);pointer-events:none}
body.arrastando .solta-aqui{display:flex}
.solta-aqui b{font-family:var(--display);font-weight:800;font-size:22px;color:var(--chao2);background:var(--ilha);padding:18px 26px;border:3px dashed var(--chao2)}
@media (max-width:560px){.sess{grid-template-columns:52px 1fr auto}.sess .acts{flex-direction:column-reverse;align-items:flex-end}.sess .btn.buy{height:28px;padding:0 8px;font-size:10px}}

/* gêneros como pedras: cor + corte (reto, arredondado, meio arco). Quem não vê cor lê o corte. */
.gen{display:inline-flex;align-items:center;height:22px;padding:0 8px;background:var(--fita);color:var(--chao);font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:10px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border:2px solid transparent}
.gen[data-g=musical]{background:var(--ilha);border-radius:11px}
.gen[data-g=opera]{background:var(--chao);color:var(--fita);border-color:var(--fita)}
.gen[data-g=bale]{background:var(--chao);color:var(--fita);border-color:var(--fita);border-radius:11px}
.gen[data-g=danca]{background:var(--copa);border-radius:11px 0 11px 0}
.gen[data-g=concerto]{color:var(--acento-na-fita);border-radius:11px}
.gen[data-g=infantil]{background:var(--sodio);color:var(--sobre-sodio);border-radius:0 11px 11px 0}
.gen[data-g=standup]{background:var(--cinza)}
.gen[data-g=palavra]{background:var(--chao);color:var(--fita);border-color:var(--fita);border-radius:0 0 11px 11px}
/* música: pedras com corte próprio, para não confundir com as de palco */
.gen[data-g=samba]{background:var(--ilha);border-radius:11px 0 0 11px}
.gen[data-g=choro]{background:var(--chao);color:var(--fita);border-color:var(--fita);border-radius:0 11px 0 11px}
.gen[data-g=jazz]{background:var(--fita);color:var(--acento-na-fita)}
.gen[data-g=mpb]{background:var(--copa)}
.gen[data-g=rock]{background:var(--cinza);border-radius:11px}
.gen[data-g=forro]{background:var(--sodio);color:var(--sobre-sodio)}
.gen[data-g=show]{background:var(--fita);border-radius:11px 0 11px 0}

/* estados: blocos mono, sem borda arredondada */
.pill{display:inline-flex;align-items:center;height:22px;padding:0 7px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:var(--texto2);border:1px solid var(--linha);white-space:nowrap}
.pill.ok{border-color:transparent;padding:0;color:var(--cinza)}
.pill.bad{background:var(--ilha);color:var(--chao);border-color:transparent}
.pill.free{background:var(--copa);color:#EDE6D6;border-color:transparent}
.pill.warn{border-color:var(--fita);color:var(--fita)}
.pill.prem{gap:5px;border:2px solid var(--ouro-linha);background:none;color:var(--fita);font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:10px;letter-spacing:.05em;cursor:pointer;margin:0}
.pill.prem.win{background:var(--ouro);border-color:var(--ouro)}
.pill.prem:hover{border-color:var(--fita)} .pill.prem.estatico{cursor:default} .pill.prem.estatico:hover{border-color:var(--ouro-linha)} .pill.prem.win.estatico:hover{border-color:var(--ouro)}
.trofeu{fill:currentColor;stroke:none;flex:none}
.pill.prem .trofeu{width:7px;height:16px;margin-left:-1px}
.premios{margin:0 0 6px;font-size:13px;line-height:1.4}.premios ul{list-style:none;margin:0;padding:0}
.premios .prem-hd{display:flex;align-items:center;gap:10px;margin:12px 0 4px}.premios .prem-g:first-child .prem-hd{margin-top:2px}.prem-n{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--cinza)}
.premios li{padding:4px 0;border-bottom:1px solid var(--linha);cursor:pointer;color:var(--texto2);font-weight:400}.premios li span{color:var(--cinza)}
.premios li:hover{color:var(--ilha)}
.premios li .trofeu,.premlist li .trofeu{width:6px;height:13px;fill:var(--ouro-linha);margin-right:6px;vertical-align:-2px}
.premios li.win{font-weight:700;color:var(--fita)}
.vprem{color:var(--fita)}

/* botões: pedras quadradas de borda 2px; a ilha vermelha é o botão de comprar */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 12px;border:2px solid var(--fita);background:var(--chao);font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:12px;text-transform:uppercase;letter-spacing:.05em;text-decoration:none;color:var(--fita);white-space:nowrap}
.btn.buy{background:var(--ilha);border-color:var(--ilha);color:#EDE6D6}
.btn.buy:hover{background:var(--ilha2);border-color:var(--ilha2);color:#EDE6D6}
.btn.add{width:44px;height:44px;padding:0;font-size:22px;font-weight:800;font-variation-settings:var(--wide)}
.btn.add.on{background:var(--copa);border-color:var(--copa);color:#EDE6D6;font-size:20px}
.btn.want{width:44px;height:44px;padding:0;font-size:20px}
.btn.want.on{background:var(--ilha);border-color:var(--ilha);color:#EDE6D6}
.btn.want.on svg{fill:currentColor}
.btn.share{width:44px;height:44px;padding:0}
.btn.share svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:square;stroke-linejoin:miter}
.mrow.sel{background:var(--areia);outline:2px solid var(--fita);outline-offset:-2px}
/* folha de compartilhar (sem Web Share): pedra flutuante na base, duas ações */
.folha{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom,0px));transform:translate(-50%,24px);width:min(420px,calc(100% - 24px));background:var(--chao);border:2px solid var(--fita);box-shadow:6px 6px 0 var(--fita);padding:12px 14px;z-index:60;opacity:0;transition:opacity .24s cubic-bezier(.2,.7,.2,1),transform .24s cubic-bezier(.2,.7,.2,1)}
.folha.open{opacity:1;transform:translate(-50%,0)}
.folha-h{display:grid;grid-template-columns:1fr auto;gap:0 8px;align-items:start}
.folha-h b{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:13px;letter-spacing:.04em}
.folha-h small{grid-column:1;font-family:var(--mono);font-size:12px;color:var(--cinza);display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folha-x{grid-column:2;grid-row:1/3;border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--fita);padding:0 2px}
.folha-a{display:flex;gap:8px;margin-top:10px}
.folha-a .btn{flex:1}
.semana-h{margin:16px 0 4px}
.semana-h .k{font-family:var(--mono);font-size:12px;color:var(--cinza);display:block}
.semana-h h2{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:22px;margin:2px 0}
.semana-h small{color:var(--cinza);font-size:13px}
.btn.primary{background:var(--fita);border-color:var(--fita);color:var(--chao)}
.btn[disabled]{opacity:.4;cursor:default}

/* peças (cartões): pedra com borda, capa com imagem ou fita na cor do gênero */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-top:16px}
@media (min-width:761px){.cards{gap:20px}}
.card{background:var(--chao2);border:2px solid var(--fita);overflow:hidden;display:flex;flex-direction:column;cursor:pointer}
.card .img{height:150px;background:var(--chao) center top/cover no-repeat;position:relative;border-bottom:2px solid var(--fita)}
.capa{background:var(--chao) center top/cover no-repeat;position:relative}   /* cartazes alinhados pelo topo: o título e o rosto costumam estar em cima */
.capa.noimg{--pb:var(--fita);--pf:var(--chao);background:var(--pb)}
.capa.noimg[data-g=musical]{--pb:var(--ilha);--pf:var(--fita)}
.card .img.noimg[data-g=opera],.capa.noimg[data-g=bale]{--pb:var(--chao);--pf:var(--fita)}
.capa.noimg[data-g=danca]{--pb:var(--copa);--pf:var(--chao)}
.capa.noimg[data-g=infantil]{--pb:var(--sodio);--pf:#1E1C1A}
.capa.noimg[data-g=standup]{--pb:var(--cinza);--pf:var(--chao)}
.capa.noimg[data-g=palavra]{--pb:var(--chao);--pf:var(--fita)}
.capa.noimg[data-g=samba]{--pb:var(--ilha);--pf:var(--fita)}
.capa.noimg[data-g=choro]{--pb:var(--chao);--pf:var(--fita)}
.capa.noimg[data-g=mpb]{--pb:var(--copa);--pf:var(--chao)}
.capa.noimg[data-g=rock]{--pb:var(--cinza);--pf:var(--chao)}
.capa.noimg[data-g=forro]{--pb:var(--sodio);--pf:#1E1C1A}
.capa.noimg::before{content:"";position:absolute;inset:0;background:var(--pf);-webkit-mask:var(--fita-a) center/cover no-repeat;mask:var(--fita-a) center/cover no-repeat}
.card:nth-child(4n+2) .img.noimg::before{-webkit-mask-image:var(--fita-b);mask-image:var(--fita-b)}
.card:nth-child(4n+3) .img.noimg::before{-webkit-mask-image:var(--fita-c);mask-image:var(--fita-c)}
.card:nth-child(4n) .img.noimg::before{-webkit-mask-image:var(--fita-d);mask-image:var(--fita-d)}
.card:nth-child(3n+1) .img.noimg::after{content:"";position:absolute;right:22%;bottom:18px;width:28px;height:28px;border-radius:50%;background:var(--ilha)}
.capa.noimg[data-g=musical]::after{background:var(--fita)}
.card .img .gen{position:absolute;left:10px;top:10px;z-index:1}
.capa.noimg .gen{background:var(--pf);color:var(--pb);border-color:transparent}
.capa.noimg[data-g=opera] .gen,.capa.noimg[data-g=bale] .gen,.capa.noimg[data-g=choro] .gen{background:var(--fita);color:var(--chao)}
.card .img .want{position:absolute;right:10px;top:10px;width:32px;height:32px;background:var(--chao);border:2px solid var(--fita);display:inline-flex;align-items:center;justify-content:center;color:var(--fita);padding:0;z-index:1}
.card .img .want.on{background:var(--ilha);border-color:var(--ilha);color:#EDE6D6}
.card .img .want.on svg{fill:currentColor}
.card .body{padding:12px 12px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.card .t{font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:16px;line-height:1.15;overflow-wrap:anywhere}
.card .m{color:var(--texto2);font-size:13px}
.card .m.mono{font-family:var(--mono);font-size:12px}
.card .f{margin-top:auto;display:flex;gap:6px;flex-wrap:wrap;padding-top:6px}
.sortbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0 0}
.sortbar button{height:34px;padding:0 12px;border:2px solid var(--fita);background:var(--chao);color:var(--fita);font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.sortbar button.on{background:var(--fita);color:var(--chao)}
.sortbar .sb-info{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--cinza)}
@media (max-width:560px){.sortbar .sb-info{margin-left:0;width:100%}}

/* palcos */
.venue{background:var(--chao2);border:2px solid var(--fita);padding:12px 14px 14px;margin-top:12px}
.venue .vh{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.venue .vh b{font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:17px;line-height:1.15}
.venue .vh small{font-family:var(--mono);font-size:11px;color:var(--cinza)}
.venue .vl{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.vposters{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;padding:12px 0 6px;scrollbar-width:thin;scrollbar-color:var(--fita) transparent}
@media (min-width:761px){.vposters{flex-wrap:wrap;overflow:visible}}
.vp{flex:none;width:132px;scroll-snap-align:start;cursor:pointer;display:flex;flex-direction:column;gap:5px}
.vp .vpimg{height:176px;border:2px solid var(--fita);overflow:hidden}
.vp .vpimg .gen{position:absolute;left:6px;top:6px;z-index:1;height:18px;padding:0 6px;font-size:9px}
.vp:nth-child(4n+2) .vpimg.noimg::before{-webkit-mask-image:var(--fita-b);mask-image:var(--fita-b)}
.vp:nth-child(4n+3) .vpimg.noimg::before{-webkit-mask-image:var(--fita-c);mask-image:var(--fita-c)}
.vp:nth-child(4n) .vpimg.noimg::before{-webkit-mask-image:var(--fita-d);mask-image:var(--fita-d)}
.vp:nth-child(3n+1) .vpimg.noimg::after{content:"";position:absolute;right:18%;bottom:14px;width:22px;height:22px;border-radius:50%;background:var(--ilha)}
.vp b{font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:13px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vp small{font-family:var(--mono);font-size:10.5px;color:var(--texto2);line-height:1.2}
.venue .vl button{border:1px solid var(--fita);background:var(--chao);color:var(--fita);padding:5px 9px;font-size:13px;text-align:left}
.venue .vl button i{font-style:normal;font-family:var(--mono);color:var(--cinza);font-size:11px}
.venue .vnext{font-family:var(--mono);font-size:12px;color:var(--cinza);margin-top:10px}
.venue.nocad{border-style:dashed}

/* mapa das zonas (aba Palcos) */
.zonas{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:12px 0 8px}
.zonas::-webkit-scrollbar{display:none}
.zchip{flex:none;height:32px;padding:0 10px;border:2px solid var(--fita);background:var(--chao);color:var(--fita);font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:11px;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:6px}
.zchip.on{background:var(--fita);color:var(--chao)}
.zchip i{font-style:normal;font-family:var(--mono);font-size:10px;opacity:.75}
.mapa{border:3px solid var(--fita);overflow:hidden;background:#1E1C1A}
.mapsvg{display:block;width:100%;height:100%}
.mapa{aspect-ratio:1280/726}
@media (max-width:760px){.mapa{aspect-ratio:auto;height:320px}.mapa.zoom{height:270px}}
#mapG{transition:transform .7s cubic-bezier(.45,.05,.2,1);transform-origin:0 0}
.mviz{fill:#D9D1BF;stroke:#1E1C1A;stroke-width:2;vector-effect:non-scaling-stroke}
.mzona{fill:var(--t);stroke:#1E1C1A;stroke-width:3;stroke-linejoin:round;cursor:pointer;transition:fill .2s;vector-effect:non-scaling-stroke}
.mzona:hover{stroke-width:6}
.mzona.on{fill:#B5452F}
.mrot{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:20px;fill:#1E1C1A;paint-order:stroke;stroke:#EDE6D6;stroke-width:5px;stroke-linejoin:round;text-anchor:middle;pointer-events:none;letter-spacing:-.3px;transition:opacity .2s}
.mrot .mrn{font-family:var(--mono);font-weight:500;font-variation-settings:normal;font-size:11px;letter-spacing:.5px}
.mrot.mar{fill:#EDE6D6;stroke:#1E1C1A}
.mapa.zoom .mrot{opacity:0}
.mbai{fill:transparent;stroke:#EDE6D6;stroke-width:1.2;stroke-dasharray:4 3;opacity:.85;vector-effect:non-scaling-stroke;pointer-events:all;cursor:zoom-in;transition:fill .2s}
.mbai:hover{fill:rgba(237,230,214,.16)}
/* terceira camada: bairro escolhido sobe (cresce 6% e ganha a sombra de pedra) depois do zoom; o resto fica atrás de um véu */
.mbveu{fill:#1E1C1A;opacity:.55;cursor:zoom-out;animation:mbveu .35s .35s both}
@keyframes mbveu{from{opacity:0}}
.mbai.fora{stroke-opacity:.45}
.mbsobe{transform-box:fill-box;transform-origin:center;transform:scale(1.06);animation:mbsobe .45s .6s cubic-bezier(.2,.7,.2,1) both}
@keyframes mbsobe{from{transform:scale(1)}}
.mbsombra{fill:#1E1C1A;opacity:.5;transform:translate(var(--dx),var(--dy));animation:mbsombra .45s .6s cubic-bezier(.2,.7,.2,1) both}
@keyframes mbsombra{from{transform:translate(0,0)}}
.mbsel{fill:#B5452F;stroke:#EDE6D6;stroke-width:2.5;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:zoom-out}
.mbrot.sel{font-weight:600;letter-spacing:.08em}
.mv.fora{pointer-events:none;opacity:.35}
.zchip.bai{background:var(--ilha);border-color:var(--ilha);color:var(--chao)}
@media (prefers-reduced-motion:reduce){.mbveu,.mbsobe,.mbsombra{animation:none}}
.mbrot{font-family:var(--mono);font-weight:500;fill:#EDE6D6;stroke:#1E1C1A;stroke-linejoin:round;paint-order:stroke;text-anchor:middle;letter-spacing:.04em;pointer-events:none;opacity:.95}
.mv{cursor:pointer}
.mv rect{fill:#1E1C1A;stroke:#EDE6D6;vector-effect:non-scaling-stroke}
.mv circle{fill:#B5452F;stroke:#1E1C1A;vector-effect:non-scaling-stroke}
.mv text{font-family:var(--sans);font-weight:600;fill:#1E1C1A;paint-order:stroke;stroke:#EDE6D6;stroke-linejoin:round;pointer-events:none}
.mv.on rect{fill:#1E1C1A;stroke:#EDE6D6}
.mv.on.ilha rect{fill:#EDE6D6}
.mv.on.ilha text{fill:#1E1C1A}
.mv.on text{font-family:var(--mono);font-weight:500;fill:#EDE6D6;stroke:none;pointer-events:none}
.vnum{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 4px;margin-right:8px;background:var(--fita);color:var(--chao);font-family:var(--mono);font-size:12px;vertical-align:2px}
.vnum.ilha{background:var(--ilha)}
.venue.flash{outline:3px solid var(--ilha);outline-offset:3px}
.venue{scroll-margin-top:140px}

/* agenda */
.conflict{color:var(--ilha);font-family:var(--mono);font-size:12px;margin:-6px 0 8px 66px}
.agendatools{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}

/* banner de mudanças: bloco noite com fita de calcário e lâmpada de sódio */
.ingbanner{position:relative;overflow:hidden;background:#1E1C1A;color:#EDE6D6;padding:16px 16px 18px;margin:14px 0 4px;min-height:120px}
.ingbanner::before{content:"";position:absolute;inset:0;background:#EDE6D6;-webkit-mask:var(--fita-b) right center/auto 100% no-repeat;mask:var(--fita-b) right center/auto 100% no-repeat;pointer-events:none}
.ingbanner::after{content:"";position:absolute;right:70px;top:22px;width:24px;height:24px;border-radius:50%;background:#E3B35C}
.ingbanner>div{position:relative;z-index:1;display:flex;flex-direction:column;gap:6px;max-width:min(62%,420px)}
.ingbanner .mb-k{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#CFC7B5;white-space:nowrap}
@media (max-width:560px){.ingbanner>div{max-width:72%}.ingbanner::before{-webkit-mask-position:right -150px center;mask-position:right -150px center}.ingbanner::after{right:26px;top:16px;width:20px;height:20px}}
.ingbanner .mb-t{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:22px;line-height:1;text-transform:uppercase;letter-spacing:-.02em}
.ingbanner .mb-s{font-size:13px;line-height:1.4;color:#CFC7B5}
.ingbanner .mb-s b{color:#E3B35C}
.ingbanner .mb-a{display:inline-flex;align-items:center;height:36px;padding:0 14px;background:#EDE6D6;color:#1E1C1A;border:0;font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:12px;text-transform:uppercase;letter-spacing:.05em;align-self:flex-start;margin-top:4px}
.ingbanner .mb-x{position:absolute;right:10px;top:8px;z-index:2;border:0;background:none;color:#EDE6D6;font-size:22px;line-height:1;padding:4px 6px}

/* ---------- modal ---------- */
/* atrás do modal: véu de basalto mais leve com risco fino (quadro "Modal · fundo", opção B): o fundo fica legível, mas lido como "atrás" */
.overlay{position:fixed;inset:0;z-index:50;background:repeating-linear-gradient(45deg,rgba(30,28,26,.10) 0 1px,transparent 1px 6px),rgba(30,28,26,.42);display:none;align-items:flex-end;justify-content:center;padding:0}
.overlay.open{display:flex}
/* altura pela viewport pequena (svh): no iOS, 100vh é a tela com a barra do Safari recolhida, e o topo do modal ficava atrás dela */
.modal{background:var(--chao);color:var(--fita);width:100%;max-width:720px;max-height:92vh;max-height:calc(92svh - env(safe-area-inset-top,0px));overflow:auto;border:3px solid var(--fita);border-bottom:0}
@media (min-width:720px){.overlay{align-items:center;padding:24px}.modal{max-height:88vh;border-bottom:3px solid var(--fita)}}
/* celular (quadro "Modal da peça · altura no celular"): a folha ocupa a tela toda menos uma faixa de véu de 40 px em cima,
   onde se toca para fechar, mesmo com pouco conteúdo. A altura vem do véu fixo (inset:0), não de vh/svh: navegadores
   dentro de apps (Google, Instagram, Gmail) calculam essas unidades pequenas e a folha ficava com metade da tela */
@media (max-width:719.98px){
  .overlay:not(.centro){padding-top:calc(40px + env(safe-area-inset-top,0px))}
  .overlay:not(.centro) .modal{box-sizing:border-box;height:100%;max-height:none;padding-bottom:env(safe-area-inset-bottom,0px)}
}
.mhero{aspect-ratio:16/8;background:var(--chao2) center top/cover no-repeat;position:relative;border-bottom:3px solid var(--fita)}
.mhero.noimg{aspect-ratio:auto;height:96px;background:var(--fita)}
.mhero.noimg::before{content:"";position:absolute;inset:0;background:var(--chao);-webkit-mask:var(--fita-c) left center/auto 100% no-repeat;mask:var(--fita-c) left center/auto 100% no-repeat}
.mhero.noimg::after{content:"";position:absolute;left:52%;top:34px;width:28px;height:28px;border-radius:50%;background:var(--acento-na-fita)}
.mclose{position:absolute;top:10px;right:10px;width:40px;height:40px;border:2px solid var(--chao);background:var(--fita);color:var(--chao);font-size:22px;line-height:1;z-index:1}
.mhero:not(.noimg) .mclose{border-color:var(--fita)}
.mbody{padding:16px 18px 24px}
.mbody h2{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:26px;line-height:1;text-transform:uppercase;letter-spacing:-.02em;margin:6px 0 8px;overflow-wrap:anywhere}   /* "ar&luz&tempo&espaço": uma palavra só, quebra onde der */
.mbody .meta{color:var(--texto2);font-size:14px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-bottom:10px}
.mbody .meta.mono{font-family:var(--mono);font-size:12px}
.mbody .syn{font-size:15px;line-height:1.5;margin:0 0 14px;max-width:64ch}
.mbody .syn.clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.mbody h3{font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:14px;text-transform:uppercase;letter-spacing:.05em;margin:20px 0 8px;padding-top:10px;border-top:3px double var(--fita);display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.mbody h3 small{font-family:var(--mono);font-size:11px;color:var(--cinza);text-transform:none;letter-spacing:0;font-weight:500}
.mrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:2px solid var(--fita)}
.mrow .d{width:112px;flex:none;font-family:var(--mono);font-variant-numeric:tabular-nums;line-height:1.2}
.mrow .d b{font-size:15px;font-weight:500}
.mrow .d small{display:block;color:var(--cinza);font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.mrow .s{flex:1;color:var(--texto2);font-size:13px;min-width:0;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.mrow .btn{height:32px;font-size:11px}
.mrow .btn.add{width:36px;height:36px;font-size:18px}
.mactions{display:flex;gap:8px;align-items:center;margin:10px 0 14px}
.mactions .share{margin-left:auto}
.ig{font-family:var(--mono);font-size:12px;color:var(--fita);text-decoration:none;border-bottom:2px solid var(--ilha)}
/* cabeçalho do modal: coração solto na diagonal direita, abaixo da foto, na altura das etiquetas e do título */
.mhead{position:relative;padding-right:56px}
.mhead{padding-right:0}
.mhead .igrow{margin-top:-4px}
.vlink{color:inherit;text-decoration:none;border-bottom:2px solid var(--linha)}
.vlink:hover{border-color:var(--ilha)}
.mhead .bairro{font-family:var(--mono);font-size:12px;color:var(--cinza);text-transform:uppercase;letter-spacing:.04em}
.igl{color:var(--cinza);text-decoration:none;border-bottom:1px solid var(--ilha)}
.src{font-family:var(--mono);font-size:11px;color:var(--cinza);margin-top:14px;line-height:1.5}
.src a{color:var(--cinza)}
.linkbtn{border:0;background:none;color:var(--ilha);font-weight:600;padding:0;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}
.ppl{display:flex;flex-wrap:wrap;gap:6px}
.ppl span{border:1px solid var(--fita);padding:3px 9px;font-size:12.5px;background:var(--chao2)}
.ppl span i{font-style:normal;color:var(--cinza)}

/* ---------- gaveta de filtros ---------- */
.drawer-backdrop{position:fixed;inset:0;background:rgba(30,28,26,.45);z-index:40;display:none}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(380px,100%);background:var(--chao);color:var(--fita);z-index:45;transform:translateX(100%);transition:transform .22s ease;display:flex;flex-direction:column;border-left:3px solid var(--fita)}
body.drawer-open .drawer{transform:none}
body.drawer-open .drawer-backdrop{display:block}
.drawer-head{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:3px solid var(--fita)}
.drawer-head b{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:20px;text-transform:uppercase;letter-spacing:-.02em;line-height:1}
.dh-count{font-family:var(--mono);color:var(--cinza);font-size:12px}
.drawer-close{margin-left:auto;border:0;background:none;font-size:28px;line-height:1;color:var(--fita)}
.drawer-body{flex:1;overflow:auto;padding:10px 18px}
.drawer-foot{display:flex;gap:8px;padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));border-top:3px solid var(--fita)}
.dbtn{flex:1;height:44px;border:2px solid var(--fita);background:var(--chao);color:var(--fita);font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.dbtn.primary{background:var(--fita);color:var(--chao)}
.fgroup{margin:16px 0}
.fgroup h4{margin:0 0 8px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cinza);font-weight:500}
.fopts{display:flex;flex-wrap:wrap;gap:6px}
.fopt{border:2px solid var(--fita);background:var(--chao);color:var(--fita);padding:0 10px;height:32px;font-size:13px;display:inline-flex;align-items:center;gap:7px}
.fopt.on{background:var(--fita);color:var(--chao)}
.fopt i{font-style:normal;font-family:var(--mono);font-size:11px;color:inherit;opacity:.7}
.ftoggle{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-top:2px solid var(--fita);font-size:14px}
.ftoggle input{width:20px;height:20px;accent-color:var(--copa)}

/* ---------- navegação inferior: pedras, não ícones ---------- */
.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:none;background:var(--chao);border-top:3px solid var(--fita);padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px))}
.bn{flex:1;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0;font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--cinza);position:relative}
.bn.active{color:var(--fita)}
.bnp{width:36px;height:8px;border:2px solid var(--fita);position:relative}
.bn.active .bnp{background:var(--fita)}
.bnn{position:absolute;top:-6px;right:calc(50% - 30px);width:18px;height:18px;min-width:0;padding:0;font-size:10px}
@media (max-width:760px){.bottomnav{display:flex}}
@media (min-width:761px){body{padding-bottom:0}}

/* ---------- busca ---------- */
.spotlight{position:fixed;inset:0;z-index:60;background:rgba(30,28,26,.55);display:none;align-items:flex-start;justify-content:center;padding:8vh 12px}
.spotlight.open{display:flex}
.spot-card{width:100%;max-width:640px;background:var(--chao);color:var(--fita);border:3px solid var(--fita);overflow:hidden}
.spot-inputwrap{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:3px solid var(--fita)}
.spot-ic{font-size:20px;color:var(--fita)}
#spotInput{flex:1;border:0;background:none;font:inherit;font-size:17px;outline:none;color:var(--fita)}
#spotInput::placeholder{color:var(--cinza)}
.spot-esc{font-family:var(--mono);font-size:11px;border:1px solid var(--fita);padding:2px 6px;color:var(--fita)}
.spot-results{max-height:60vh;overflow:auto;padding:6px}
.spot-r{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:none;padding:9px 10px;color:var(--fita)}
.spot-r:hover,.spot-r.sel{background:var(--fita);color:var(--chao)}
.spot-r .k{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;width:64px;flex:none;opacity:.7}
.spot-r .n{flex:1;min-width:0;font-weight:600}
.spot-r .n small{display:block;font-weight:400;font-size:12px;opacity:.75}
.spot-r .n small b{font-family:var(--mono);font-weight:500;opacity:1} .spot-r .n small b.hoje{color:var(--ilha)} .spot-r:hover .n small b.hoje,.spot-r.sel .n small b.hoje{color:var(--acento-na-fita)}
mark{background:var(--sodio);color:#1E1C1A}

/* ---------- rodapé ---------- */
.foot{max-width:1184px;margin:24px auto 0;padding:14px max(16px,env(safe-area-inset-left,0px)) 18px;border-top:3px double var(--fita);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;color:var(--cinza);line-height:1.5}
@media (min-width:761px){.foot{padding-left:32px;padding-right:32px}}
.foot .fm{height:14px;width:60px;background:var(--fita);-webkit-mask:var(--meiofio) no-repeat;mask:var(--meiofio) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;flex:none}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(20px);background:var(--fita);color:var(--chao);padding:10px 16px;font-size:14px;opacity:0;pointer-events:none;transition:all .2s;z-index:70;max-width:92vw}
.toast.show{opacity:1;transform:translateX(-50%)}
.toast.acao.show{pointer-events:auto}.toast .toast-a{margin-left:10px;border:0;background:none;color:var(--sodio);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;padding:0}
@media (min-width:761px){.toast{bottom:24px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ficha técnica: fila horizontal de pedras com iniciais, rola de lado */
/* ficha técnica: painel de azulejos (módulo quadrado, rejunte 2 px, uma figura e uma cor por papel, giro alternado) */
.painel{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:1px;margin:14px 0 4px}   /* rejunte por azulejo, não por fundo: a última linha pode ficar incompleta */
@media (max-width:560px){.painel{grid-template-columns:repeat(4,1fr)}}
.az{position:relative;aspect-ratio:1;background:var(--chao2);overflow:hidden;border:0;padding:0;margin:0;font:inherit;color:var(--fita);text-align:left;cursor:default;min-width:0;box-shadow:0 0 0 1px var(--linha)}
button.az{cursor:pointer}
.az i{position:absolute;inset:0;display:block;transition:transform .2s}
.az.fita i{background:var(--fita)}.az.ilha i{background:var(--ilha)}.az.copa i{background:var(--copa)}.az.areia i{background:var(--areia)}
.az.quarto i{clip-path:circle(72% at 0 0)}
.az.tri i{clip-path:polygon(0 0,100% 0,0 100%)}
.az.meia i{clip-path:ellipse(50% 62% at 50% 0)}
.az.metade i{clip-path:inset(0 0 50% 0)}
.az.r1 i{transform:rotate(90deg)}.az.r2 i{transform:rotate(180deg)}.az.r3 i{transform:rotate(270deg)}
/* o nome ocupa o espaço que a figura deixa, até encostar nela; a fonte diminui até caber (fechaPainel) */
.az b{position:absolute;font-size:11.5px;font-weight:600;line-height:1.1;max-width:72%;max-height:56%;color:var(--fita);overflow:hidden;overflow-wrap:normal;word-break:keep-all}
.az.r0 b{right:8px;bottom:7px;text-align:right}.az.r1 b{left:8px;bottom:7px}.az.r2 b{left:8px;top:7px}.az.r3 b{right:8px;top:7px;text-align:right}
.az.meia.r0 b,.az.meia.r2 b,.az.metade.r0 b,.az.metade.r2 b{max-width:calc(100% - 16px)}
.az.meia.r0 b,.az.meia.r2 b{max-height:calc(38% - 9px)}
.az.metade.r0 b,.az.metade.r2 b{max-height:calc(50% - 9px)}
.az.chave{display:flex;align-items:flex-end;padding:8px}
.az.chave span{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;line-height:1.25;color:var(--chao)}
.az.chave.fita{background:var(--fita)}.az.chave.ilha{background:var(--ilha)}.az.chave.copa{background:var(--copa)}.az.chave.areia{background:var(--areia)}.az.chave.areia span{color:var(--fita)}
.az.chave.mais{background:var(--chao);border:2px solid var(--fita);font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:18px;align-items:center;justify-content:center;padding:0}
button.az:hover i{transform:scale(1.04)}.az.r1:hover i{transform:rotate(90deg) scale(1.04)}.az.r2:hover i{transform:rotate(180deg) scale(1.04)}.az.r3:hover i{transform:rotate(270deg) scale(1.04)}
@media (max-width:560px){.az b{font-size:10.5px}.az.chave span{font-size:8.5px}}

/* ---------- calendário mensal no modal ---------- */
.cal{display:flex;flex-direction:column;gap:18px;margin:6px 0 14px;position:relative}
.calpop{position:absolute;left:0;right:0;max-width:420px;z-index:5;background:var(--chao);border:3px solid var(--fita);padding:0 12px 6px;box-shadow:8px 8px 0 var(--fita)}
.calpop .cald-h{font-size:16px;padding:10px 0 8px;gap:8px}
.calpop .cald-h small{margin-left:auto}
.calx{border:0;background:none;color:var(--fita);font-size:22px;line-height:1;padding:0 0 0 6px;margin-top:-4px}
.calpop .mrow:last-child{border-bottom:0}
.calpop .mrow .d{width:64px}
.calm{max-width:420px}
.calh{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:13px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.calh small{font-family:var(--mono);font-size:11px;color:var(--cinza);text-transform:none;letter-spacing:0;font-weight:500}
.calg{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.calg>*{position:relative}
/* divisória do fim de semana: uma linha só, no meio do vão entre a 5ª e a 6ª coluna (colunas de (100% − 6×4px)/7) */
.calg{position:relative}
.calg::before{content:"";position:absolute;top:0;bottom:0;left:calc((100% - 24px) / 7 * 5 + 18px);border-left:1px dotted var(--cinza);pointer-events:none}
.calg>i{font-style:normal;font-family:var(--mono);font-size:10px;color:var(--cinza);text-align:center;padding-bottom:2px}
.cd{height:42px;border:2px solid var(--fita);background:var(--chao);color:var(--fita);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;position:relative;line-height:1}
.cd b{font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:14px}
.cd i{font-style:normal;font-family:var(--mono);font-size:9px;margin-top:2px;opacity:.8}
.cd.off{border-color:transparent;color:var(--cinza)}
.cd.off b{font-weight:500;font-variation-settings:"wdth" 100,"wght" 500}
.cd.on{background:var(--fita);color:var(--chao)}
/* esgotado: um risco de 2 px, do canto superior direito ao inferior esquerdo, atravessando a borda */
.cd.esg::before{content:"";position:absolute;inset:-2px;pointer-events:none;background:linear-gradient(to bottom right,transparent calc(50% - 1px),var(--ilha) calc(50% - 1px),var(--ilha) calc(50% + 1px),transparent calc(50% + 1px))}
.cd.esg b,.cd.esg i{color:var(--cinza)}
.cd.esg.on b,.cd.esg.on i{color:var(--chao)}
.btn.dis{border-color:var(--linha);color:var(--cinza);background:transparent;cursor:default}
.cd.today::after{content:"";position:absolute;top:-5px;right:-5px;width:10px;height:10px;border-radius:50%;background:var(--ilha)}
.cald-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:18px;text-transform:uppercase;letter-spacing:-.02em;line-height:1;padding:10px 0 8px;border-bottom:3px solid var(--fita)}
.cald-h small{font-family:var(--mono);font-size:11px;color:var(--cinza);text-transform:none;letter-spacing:0;font-weight:500}
.calmais{margin:-4px 0 14px}


/* ---------- movimento: o que uma pedra faz (quadro "Movimento" do sistema) ----------
   Só em resposta a um fato (dado chegou, escolha feita, item guardado, zoom); curvas com peso; nada em laço decorativo. */
@keyframes revela{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes rola{from{transform:translateX(calc(-1 * var(--w,600px)))}to{transform:none}}
@keyframes cai{from{transform:translateY(-24px);opacity:0}to{transform:none;opacity:1}}
@keyframes pousa{from{transform:translateY(-10px);opacity:0}to{transform:none;opacity:1}}
@keyframes aperta{0%{transform:scale(1)}45%{transform:scale(.94)}100%{transform:scale(1)}}
@keyframes encosta{0%{transform:scale(1)}40%{transform:scale(1.4)}100%{transform:scale(1)}}
@keyframes corre{from{background-position-x:0}to{background-position-x:-200%}}
/* 1 e 3: a fita se assenta (800 ms) e a ilha rola pela fita até o lugar (1400 ms) */
.faixa.rola::before{animation:revela .8s cubic-bezier(.65,0,.35,1) both}
/* a ilha não desliza mais em CSS: quem a move é o caminho (quicaIlha), em três modos: chega pela fita, sai pela fita, cai do alto */
/* 2: pedras empilham: dias e cartazes descem um atrás do outro, 90 ms de intervalo, sem quicar */
.days.entra .day{animation:cai .48s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(var(--i,0) * 90ms)}
.vposters.entra .vp{animation:cai .48s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(var(--i,0) * 90ms)}
/* 4: a pedra vira em 200 ms; a ilha de "hoje" encosta uma vez quando o dia é escolhido */
.day,.fopt,.zchip,.cd,.btn.add,.want,.mzona{transition:background-color .2s,color .2s,border-color .2s,fill .2s}
.day.today.recem.active::after{animation:encosta .36s cubic-bezier(.45,.05,.2,1)}
/* 5: carimbo: guardar aperta a pedra em 6% e ela volta já na cor */
.btn.add.carimba,.want.carimba{animation:aperta .32s cubic-bezier(.45,.05,.2,1)}
/* 6: meio-fio carregando: os três traços correm enquanto o JSON não chega */
.meiofio.carregando{background:linear-gradient(90deg,var(--fita) 0 30%,transparent 50%,var(--fita) 70% 100%);background-size:200% 100%;animation:corre 1.8s cubic-bezier(.45,.05,.55,.95) infinite}
/* 7: o painel do calendário pousa */
.calpop{animation:pousa .28s cubic-bezier(.22,.61,.36,1)}
/* 8: depois do zoom (700 ms), as pedras numeradas pousam na ordem da lista, 70 ms entre elas */
.mapa.zoom .mv.on{animation:pousa .24s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(.7s + var(--i,0) * 70ms);transform-box:fill-box}
/* 9: hover só engrossa a junta (2 → 3 px), sem mover a pedra */
.card,.vp .vpimg{transition:box-shadow .16s}
.card:hover,.vp:hover .vpimg{box-shadow:inset 0 0 0 1px var(--fita)}
/* troca de dia: o novo conteúdo entra de fora da tela pelo lado do dia escolhido, o antigo sai pelo oposto; as pedras
   dos dias mudam de cor na mesma duração e curva */
@keyframes entraDir{from{transform:translateX(100%);opacity:0}to{transform:none;opacity:1}}
@keyframes entraEsq{from{transform:translateX(-100%);opacity:0}to{transform:none;opacity:1}}
@keyframes saiEsq{to{transform:translateX(-45%);opacity:0}}
@keyframes saiDir{to{transform:translateX(45%);opacity:0}}
.gcont.entra-dir{animation:entraDir .42s cubic-bezier(.22,.61,.36,1) both}
.gcont.entra-esq{animation:entraEsq .42s cubic-bezier(.22,.61,.36,1) both}
.grupo{scroll-margin-top:0}
.saindo{position:absolute;pointer-events:none;overflow:hidden;z-index:1;animation:saiEsq .42s cubic-bezier(.45,.05,.55,.95) both}
.saindo.esq{animation-name:saiDir}
.day{transition:background-color .42s cubic-bezier(.22,.61,.36,1),color .42s cubic-bezier(.22,.61,.36,1),border-color .2s}
/* palcos: sem zoom, pedras mínimas; com zoom, carrossel horizontal e marcador em foco */
.mv.mini{cursor:zoom-in}
.mv.on{transform-box:fill-box;transform-origin:center;transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.mv.on.foco{transform:scale(1.5)}
.mv.on.foco rect{fill:#B5452F;stroke:#EDE6D6}
.mv.on.foco text{fill:#EDE6D6;stroke:#B5452F}
.vcar{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px 16px 10px;margin:0 -16px;scrollbar-width:none}
.vcar::-webkit-scrollbar{display:none}
.vcar .venue{flex:none;width:min(84vw,360px);scroll-snap-align:center;margin-top:0;transition:border-color .3s,box-shadow .3s}
.vcar .venue.foco{border-color:var(--ilha);box-shadow:inset 0 0 0 1px var(--ilha)}
.vcar .vposters{padding:10px 0 4px}
.vcar .vp{width:96px}
.vcar .vp .vpimg{height:116px}
.vcar .vp b{font-size:12px}
@media (min-width:761px){.vcar{margin:0;padding-left:0;padding-right:0}}
/* cartão do palco na zona: duas fileiras de cartazes e um pedaço da terceira, para mostrar que a lista rola para baixo */
.vcar .vposters{flex-wrap:wrap;overflow-x:hidden;overflow-y:auto;max-height:430px;overscroll-behavior:contain;scroll-snap-type:none;padding-right:4px}
.vcar .vp{scroll-snap-align:none}
/* setas do carrossel (desktop): pedras quadradas nas bordas, somem no começo e no fim */
.vcarw{position:relative}
.vseta{display:none}
@media (min-width:761px){
  .vseta{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;z-index:3;width:44px;height:44px;margin-top:-22px;padding:0;border:2px solid var(--fita);background:var(--chao2);color:var(--fita);cursor:pointer;filter:drop-shadow(2px 3px 0 rgba(30,28,26,.28))}
  .vseta[hidden]{display:none}
  .vseta svg{width:22px;height:22px;stroke-width:2.5;stroke-linecap:square;stroke-linejoin:miter}
  .vseta:hover{background:var(--fita);color:var(--chao)}
  .vseta.esq{left:-10px}.vseta.dir{right:-10px}
}

/* abertura (quadro "Movimento · abertura, variante B"): a ilha grande no centro, a fita nasce nela e sobe em negativo,
   o nome se escreve letra por letra, a ilha encolhe e o conjunto viaja até o lugar da marca no cabeçalho (FLIP). */
#abertura{position:fixed;inset:0;z-index:100;background:var(--chao);cursor:pointer;touch-action:none;animation:ab-fora .3s 4.5s forwards}   /* rede: some sozinha se o JS não vier */
@keyframes ab-fora{to{opacity:0;visibility:hidden}}
.sem-abertura #abertura{display:none}
#abertura .ab-g{position:absolute;left:0;top:0;display:flex;align-items:center;transform-origin:0 0;will-change:transform}
#abertura .ab-s{position:relative;flex:none;width:96px;height:96px}
#abertura .ab-s svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#abertura .ab-s .f{fill:none;stroke:var(--fita);stroke-width:38;stroke-linecap:butt;stroke-dasharray:230 230;stroke-dashoffset:230}
#abertura .ab-neg .f{stroke:var(--chao)}
#abertura .ab-b{position:absolute;border-radius:50%;background:var(--ilha);transform-origin:50% 50%;transform:scale(0)}
#abertura .ab-nw{position:absolute;inset:0;overflow:visible}
#abertura .ab-n{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;letter-spacing:-.02em;line-height:1;white-space:nowrap;margin:0;color:var(--fita)}
#abertura .ab-n i{display:inline-block;font-style:normal;opacity:0}
#abertura .ab-nw .ab-n{position:absolute;top:50%;transform:translateY(-50%);color:var(--chao)}
html.abrindo{overflow:hidden}
body.abrindo .top{opacity:0}
body.abrindo .wrap,body.abrindo .bnav{opacity:0;transform:translateY(12px)}
.top,.wrap,.bnav{transition:opacity .4s cubic-bezier(.2,.7,.2,1),transform .4s cubic-bezier(.2,.7,.2,1)}

/* Em cartaz v2: janelas de tempo no lugar das pedras de dia, mosaico de gêneros, pedra e folha (quadro "navegar por gênero") */
.day.jan{width:auto;min-width:0;padding:0 5px;gap:3px}
@media (max-width:560px){.toolbar.janelas .hdrfilter span:not(.fn){display:none}.toolbar.janelas .hdrfilter{padding:0 10px}.toolbar.janelas .days{gap:3px}}
.day.jan b{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-variation-settings:var(--mid);margin:0;white-space:nowrap}
.day.jan small{font-size:11px;font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);opacity:.85}
.mosaico{max-width:560px;margin:12px 0 0}
@media (min-width:761px){.mosaico{max-width:none}}
.mosvg{display:block;width:100%;height:auto;stroke:none;fill:none}
.mosvg .mpeca path{stroke:var(--chao);stroke-width:2;transition:fill .25s}
.mosvg .mpeca[data-g]{cursor:pointer}
.mosvg .mpeca[data-g]:hover path,.mosvg .mpeca.marcada path{filter:brightness(1.12)}
.mosvg .mpeca.marcada path{stroke:var(--ilha);stroke-width:4}
.mosvg text{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);letter-spacing:-.02em;pointer-events:none;stroke:none;paint-order:normal}
.mosvg text.mn{font-family:var(--mono);font-weight:500;font-variation-settings:normal;letter-spacing:0;opacity:.8}
.mosaico .mais{font-family:var(--mono);font-size:12px;color:var(--cinza);margin-top:8px}
.mosaico .mais .linkbtn{font-family:var(--mono);font-size:12px;color:var(--fita);padding:0;border:0;background:none;border-bottom:2px solid var(--linha);cursor:pointer}
.mosaico .mais .linkbtn i{font-style:normal;color:var(--cinza)}
.fglifo{border:0;background:none;padding:0;margin:0 8px 0 0;width:28px;height:28px;display:inline-flex;align-items:flex-end;vertical-align:baseline;cursor:pointer}
.fglifo .glifo{width:28px;height:28px;display:block;stroke:none}
.pedra{position:fixed;right:14px;bottom:calc(var(--bnav-h,64px) + 14px + env(safe-area-inset-bottom,0px));width:72px;height:54px;line-height:0;padding:0;border:0;background:none;z-index:40;cursor:pointer;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .24s cubic-bezier(.2,.7,.2,1),transform .24s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(2px 3px 0 rgba(30,28,26,.28))}
.pedra.on{opacity:1;transform:none;pointer-events:auto}
.pedra.guiada{transition:none;opacity:1}
.pedra .mosvg .mpeca path{stroke-width:4}
.mosvg.voando{filter:drop-shadow(2px 3px 0 rgba(30,28,26,.28))}
@media (min-width:761px){.pedra{bottom:18px;right:24px;width:120px;height:24px}}
/* voltar ao topo: o meio-fio (três juntas paralelas) dobrado em seta, em cima da pedra */
.sobe{position:fixed;right:24px;bottom:calc(var(--bnav-h,64px) + 14px + 54px + 2px + env(safe-area-inset-bottom,0px));width:52px;height:44px;padding:0;border:0;background:none;z-index:40;cursor:pointer;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .24s cubic-bezier(.2,.7,.2,1),transform .24s cubic-bezier(.2,.7,.2,1)}
.sobe::before{content:"";position:absolute;inset:8px;background:var(--fita);-webkit-mask:var(--seta-meiofio) no-repeat center/contain;mask:var(--seta-meiofio) no-repeat center/contain}
.sobe.on{opacity:1;transform:none;pointer-events:auto}
.sobe:hover::before{background:var(--ilha)}
@media (min-width:761px){.sobe{bottom:calc(18px + 24px + 2px);right:58px}}
.folha-gen{width:min(560px,calc(100% - 24px));z-index:61}
@media (min-width:761px){.folha-gen{width:min(1120px,calc(100% - 48px))}}
.folha-gen .mosvg{margin-top:10px}

/* modal da pessoa */
.mvoltar{border:0;background:none;padding:0 0 10px;font-family:var(--mono);font-size:12px;color:var(--fita);cursor:pointer;text-align:left;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.mvoltar:hover{color:var(--ilha)}
.mhero.pessoa{height:64px}
.prow{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--linha);cursor:pointer}
.prow:hover b{color:var(--ilha)}
.prow .pimg{width:56px;height:74px;background:var(--linha) center top/cover no-repeat;border:2px solid var(--fita)}
.prow .ptxt b{display:block;font-size:15px;line-height:1.2}
.prow .ptxt small{display:block;font-family:var(--mono);font-size:11.5px;color:var(--cinza);margin-top:2px}
/* artista de show: a foto do Spotify ao lado do nome, e o botão de ouvir ao lado do Seguir */
.pz h2 .pz-foto{display:inline-block;width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--fita);vertical-align:middle;margin:0 12px 6px 0}
.pz-som{margin:0 0 6px}.pz-ouvir{gap:8px}.pz-ouvir .som-play{width:22px;height:22px}
/* mais de um palco: um link por palco, cada um abre a montagem daquele palco */
.prow .pz-local{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:4px;padding:6px 0 4px;border:0;border-top:1px dashed var(--linha);background:none;font-family:var(--mono);font-size:11.5px;color:var(--fita);text-align:left;cursor:pointer}
.prow .pz-local span{text-decoration:underline;text-decoration-color:var(--ilha);text-decoration-thickness:1px;text-underline-offset:3px}
.prow .pz-local i{font-style:normal;font-size:16px;line-height:1;color:var(--ilha)}
.prow .pz-local:hover span{color:var(--ilha)}
.premlist{list-style:none;margin:0;padding:0;font-size:14px}
.premlist li{padding:6px 0;border-bottom:1px solid var(--linha);cursor:pointer} .premlist li:hover b{color:var(--ilha)} .premlist i{color:var(--cinza)}

/* esgotado: faixa vermelha atravessada na imagem quando nenhuma sessão por vir tem ingresso (quadro "Estados · esgotado") */
.esg-fita{position:absolute;left:-12%;right:-12%;top:46%;transform:rotate(-7deg);background:var(--ilha);color:var(--chao);font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:13px;letter-spacing:.18em;text-transform:uppercase;text-align:center;padding:6px 0;z-index:2;pointer-events:none;box-shadow:0 3px 0 rgba(30,28,26,.35)}
.mhero .esg-fita{font-size:18px;padding:9px 0;top:50%}
/* a fita de esgotado passa das bordas de propósito: quem a contém corta, e o modal nunca rola de lado */
.mhero,.card .img,.capa{overflow:hidden}
.modal{overflow-x:hidden}
.vp .esg-fita{font-size:9px;padding:3px 0;letter-spacing:.12em}

/* peça vazia: hachurada, nome e zero com halo do chão para ler por cima das linhas */
.mosvg .mpeca.vazia text{stroke:var(--chao);stroke-width:3px;paint-order:stroke;stroke-linejoin:round}
.mosvg .mpeca.vazia{cursor:default}

/* filtro com autocomplete (bairro, palco) */
.combo{position:relative}
.combo-in{width:100%;box-sizing:border-box;height:40px;border:2px solid var(--fita);background:var(--chao2);padding:0 12px;font:inherit;font-size:16px;color:var(--fita);border-radius:0;-webkit-appearance:none;appearance:none}
.combo.open .combo-in{border-bottom-width:1px}
.combo-pop{border:2px solid var(--fita);border-top:0;background:var(--chao);max-height:280px;overflow:auto;overscroll-behavior:contain}
.combo-opt{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--linha);cursor:pointer;font-size:14px}
.combo-opt:hover{background:var(--chao2)}
.combo-opt input{width:18px;height:18px;margin:0;accent-color:var(--fita);flex:none}
.combo-opt span{flex:1;min-width:0}
.combo-opt em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--cinza);margin-left:4px}
.combo-opt small{font-family:var(--mono);font-size:11px;color:var(--cinza)}
.combo-opt.fav{background:var(--chao2)}
.combo-vazio{padding:10px;font-family:var(--mono);font-size:12px;color:var(--cinza)}
.fchips{display:flex;flex-wrap:wrap;gap:6px}
.fchips:not(:empty){margin-top:8px}
.fchip{border:2px solid var(--fita);background:var(--fita);color:var(--chao);height:30px;padding:0 10px;font-size:13px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.fchip small{font-size:11px;opacity:.75}
/* estrela de palco favorito */
.favp{border:0;background:none;padding:0 2px;font-size:18px;line-height:1;color:var(--cinza);cursor:pointer;flex:none}
.favp.on{color:var(--ilha)}
.favp:hover{color:var(--ilha)}
.vh .vh-fav{margin-right:6px;font-size:20px;vertical-align:-2px}
.mhead .m-fav{margin-left:8px;font-size:20px}
.favmark{color:var(--ilha)}
.hourhead.favhead{color:var(--ilha)}
.combo-in:focus{outline:none;border-color:var(--ilha)}

/* modal do prêmio */
.mhero.premio{height:64px;background:var(--ouro);background-image:none}
.pr-h2 .trofeu{width:11px;height:24px;fill:var(--ouro-linha);margin-right:8px;vertical-align:-4px}
.pr-eds{display:flex;gap:2px;flex-wrap:wrap;margin:12px 0 4px}
.pr-eds button{font-family:var(--mono);font-size:12px;padding:6px 10px;border:2px solid var(--fita);background:var(--chao2);color:var(--fita);cursor:pointer}
.pr-eds button.on{background:var(--fita);color:var(--chao)}
.pr-cat.alvo h3{color:var(--ilha)}
.pr-lista{list-style:none;margin:0 0 6px;padding:0}
.pr-lista li{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--linha);font-size:14px;line-height:1.3}
.pr-lista li .pr-t b{font-weight:500}
.pr-lista li.win .pr-t b{font-weight:700}
.pr-ic .trofeu{display:block;width:8px;height:18px;fill:var(--ouro-linha)}
.pr-t small{display:block;font-family:var(--mono);font-size:11.5px;color:var(--cinza);margin-top:2px}
.pr-lista li.vivo{cursor:pointer} .pr-lista li.vivo:hover b{color:var(--ilha)}
.pill.emcartaz{border-color:var(--copa);color:var(--copa)}
.linkp{border:0;background:none;padding:0;font:inherit;color:inherit;text-decoration:underline;text-decoration-color:var(--linha);text-underline-offset:2px;cursor:pointer}
.linkp:hover{color:var(--ilha)}

/* ficha técnica: passar sobre a categoria ergue os azulejos dela, como pedra que sobe do chão */
.az{transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s cubic-bezier(.2,.7,.2,1)}
/* a pedra sai do chão em direção a quem olha: cresce e projeta sombra sobre as vizinhas (luz de cima) */
.az.ergue{transform:scale(1.09);box-shadow:0 0 0 1px var(--linha),0 3px 5px rgba(30,28,26,.28),0 12px 22px -6px rgba(30,28,26,.5);z-index:3}
@media (prefers-reduced-motion:reduce){.az{transition:none}}
.mhero.premio::after{background:var(--ilha)}

/* agenda: palcos favoritos como azulejos, sem cartazes */
.favpainel .az b em{display:block;font-style:normal;font-family:var(--mono);font-weight:500;font-size:9.5px;color:var(--cinza);margin-top:3px}
.pr-cat{scroll-margin-top:12px}
/* modal do prêmio: cabeçalho até os anos fixo; a lista de categorias rola sozinha */
.modal:has(.pr-fixo){display:flex;flex-direction:column;overflow:hidden}
.pr-fixo{flex:none}.pr-fixo .mbody{padding-bottom:10px}
.pr-rolagem{flex:1;min-height:0;overflow:auto;padding-top:12px;border-top:3px double var(--fita)}
.pr-eds button{position:relative}
.pr-eds .vivo{position:absolute;right:3px;top:3px;width:6px;height:6px;border-radius:50%;background:var(--copa)}
.pr-eds button.on .vivo{background:var(--acento-na-fita)}

/* ---------- social (social.js): canteiro, seixo, nota em ilhas, reviews, carteira ---------- */
.seixo{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;border:2px solid var(--fita);box-sizing:border-box;overflow:hidden;font-family:var(--display);font-weight:700;font-size:11px;color:var(--fita);background:var(--areia);flex:none;vertical-align:middle}
.seixo img{width:100%;height:100%;object-fit:cover;display:block}
.seixo.c-ilha{background:var(--ilha);color:var(--chao)}.seixo.c-copa{background:var(--copa);color:var(--chao)}.seixo.c-sodio{background:var(--sodio)}.seixo.c-areia{background:var(--areia)}.seixo.c-fita{background:var(--fita);color:var(--chao)}
.seixo.g{width:40px;height:40px;font-size:13px}.seixo.p{width:26px;height:26px;font-size:10px;border-color:var(--chao)}
.seixo-btn,.scapa-btn{border:0;background:none;padding:0;cursor:pointer;line-height:0}
.pilha{display:inline-flex}.pilha .seixo+.seixo{margin-left:-8px}
.scapa{display:block;width:34px;height:46px;border:2px solid var(--fita);background:var(--linha) center top/cover no-repeat;box-sizing:border-box}
.canteiro{position:relative;height:200px;background:var(--fita);overflow:hidden}
.canteiro svg{position:absolute;inset:0;width:100%;height:100%}
.canteiro .cfoto{position:absolute;left:50%;top:50%;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;border:3px solid var(--chao);background:var(--areia);object-fit:cover;box-sizing:border-box;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:30px;color:var(--fita)}
.canteiro.vazio .cfoto{background:var(--chao2);color:var(--cinza)}
.so-topo{margin:0 -16px}
.so-topo-txt{padding:12px 16px 4px;position:relative}
.so-topo-txt b{display:block;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:22px;line-height:1}
.so-topo-txt small{display:block;color:var(--cinza);margin-top:3px}
.so-topo-txt p{margin:8px 0 10px;font-size:14px;line-height:1.45;color:var(--texto2);max-width:520px}
.so-topo-btns{position:absolute;right:16px;top:12px;display:flex;gap:6px}.so-topo-btns .btn{height:32px}.so-sair{width:36px;padding:0}.so-sair svg{width:18px;height:18px;stroke-width:2.2}
.so-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:10px 16px 0;border:2px solid var(--fita)}
.so-stats>div{padding:8px 4px;text-align:center;border-right:2px solid var(--fita)}.so-stats>div:last-child{border-right:0}
.so-stats b{display:block;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:20px;line-height:1}
.so-stats small{display:block;font-family:var(--mono);font-size:9.5px;color:var(--cinza);margin-top:3px;text-transform:uppercase;letter-spacing:.04em}
.so-stats.quatro{grid-template-columns:repeat(4,1fr)}
.so-mos-wrap{margin:12px 16px 4px}
.so-mos{display:block;width:100%;max-width:520px;height:auto}
.so-mos.vazio{position:relative;height:90px;border:2px solid var(--fita);display:grid;place-items:center;text-align:center;overflow:hidden}
.so-mos.vazio .hach{position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(30,28,26,.12) 0 2px,transparent 2px 9px)}
.so-mos.vazio b{position:relative;font-family:var(--display);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.04em;padding:0 16px}
.so-mos.vazio small{position:relative;font-family:var(--mono);font-size:11px;color:var(--cinza);margin-top:-18px}
.nota{display:inline-flex;align-items:center;gap:6px}.nota b{font-family:var(--display);font-weight:800;font-size:13px}
.ilhas{display:inline-block;vertical-align:middle;stroke:none}.ilhas.inter .alvo{cursor:pointer}
.so-sec{margin-top:18px}
.so-sec h3{display:flex;align-items:baseline;gap:10px}.so-sec h3 .linkbtn{margin-left:auto;font-size:12px}
.so-tl{display:grid;grid-template-columns:30px 1fr 34px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--linha)}
.so-tl .txt{font-size:13.5px;line-height:1.35}.so-tl .txt small{display:block;margin-top:3px;color:var(--cinza)}.so-tl .prev{display:block;font-style:italic;color:var(--texto2);margin-top:3px}
.so-vazio{padding:14px 0;color:var(--texto2);font-size:14px;line-height:1.45}.so-vazio>b{display:block;color:var(--fita);margin-bottom:6px}
.so-nota-demo{font-family:var(--mono);font-size:11px;color:var(--cinza);padding:10px 0}
.so-abas{display:flex;border:2px solid var(--fita);margin-top:18px}
.so-abas button{flex:1;border:0;background:none;padding:10px 4px;font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--cinza);display:inline-flex;align-items:center;justify-content:center;gap:4px}
.so-abas button.on{background:var(--fita);color:var(--chao)}.so-abas small{font-family:var(--mono);font-size:10px;opacity:.75}
.cad{display:inline-block;width:9px;height:11px;border:2px solid currentColor;border-top-left-radius:4px;border-top-right-radius:4px;box-sizing:border-box;position:relative;top:1px}.cad::after{content:"";position:absolute;left:-2px;right:-2px;bottom:-2px;height:6px;background:currentColor}
.so-aba-corpo{padding-top:6px}
.so-dia{display:grid;grid-template-columns:40px 34px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--linha)}
.so-dia .data{text-align:center;line-height:1.1;font-size:10px;color:var(--cinza)}.so-dia .data b{display:block;font-family:var(--display);font-size:16px;color:var(--fita)}
.so-dia .tit{border:0;background:none;padding:0;text-align:left;font:inherit;cursor:pointer;min-width:0}.so-dia .tit b{display:block;font-size:13.5px}.so-dia .tit small{display:block;font-family:var(--mono);font-size:10.5px;color:var(--cinza)}
.so-sem{font-size:10px;color:var(--cinza)}
.so-faixa{position:relative;display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:12px 0 0;border-top:1px solid rgba(237,230,214,.25);color:var(--chao);overflow:hidden}
.so-faixa::before{content:"";position:absolute;right:-20px;top:-10px;width:140px;height:80px;background:repeating-linear-gradient(-70deg,rgba(237,230,214,.35) 0 3px,transparent 3px 12px);opacity:.5;pointer-events:none}
.so-faixa .txt{position:relative;font-size:12.5px;line-height:1.35}.so-faixa .txt small{display:block;font-family:var(--mono);font-size:10px;opacity:.75;margin-top:2px}

.so-vi{gap:6px;height:40px}.so-vi.on{background:var(--fita);color:var(--chao)}
.so-revs{margin:0 0 6px}
.so-rev{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--linha)}.so-rev:last-child{border-bottom:0}
.so-rev.lista{grid-template-columns:64px 1fr;gap:12px}.so-rev.lista .scapa{width:64px;height:86px}
.so-rev .topo{display:flex;align-items:center;gap:8px}
.so-rev .nome{border:0;background:none;padding:0;font:inherit;font-weight:700;font-size:13.5px;color:var(--fita);cursor:pointer;text-align:left}
.so-rev .mais{margin-left:auto;border:0;background:none;font-size:18px;line-height:1;padding:0 4px;color:var(--cinza);cursor:pointer}
.so-rev small.mono{display:block;color:var(--cinza);font-size:10.5px;margin-top:2px}
.so-rev .txt{margin:6px 0 0;font-size:13.5px;line-height:1.45}
.so-rev-menu{display:flex;gap:14px;margin-top:6px}.so-rev-menu .linkbtn{font-size:12px}
.so-spoiler{display:block;margin-top:6px;border:2px dashed var(--fita);background:none;padding:6px 10px;font-family:var(--mono);font-size:11px;color:var(--fita);cursor:pointer}
.onda{display:block;width:100%;height:12px}
.folha-soc{width:min(460px,calc(100% - 24px));max-height:calc(100vh - 40px);max-height:calc(100svh - 40px);overflow:auto;z-index:62}
.so-p{font-size:14px;line-height:1.45;margin:10px 0 6px;color:var(--texto2)}
.so-nota{display:block;font-family:var(--mono);font-size:10.5px;color:var(--cinza);line-height:1.5;margin:8px 0}
/* entrar com Google na cara da casa: pedra preta, G num seixo vermelho; o botão oficial fica transparente por cima, recebendo o toque */
.so-google-wrap{position:relative;margin-top:10px;height:48px}
.so-google{width:100%;height:48px;gap:12px;background:var(--fita);border-color:var(--fita);color:var(--chao);font-size:13px;letter-spacing:.06em;box-shadow:4px 4px 0 var(--ilha);transition:transform .12s,box-shadow .12s}
.so-google .g{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ilha);color:var(--chao);font-family:var(--display);font-weight:800;font-style:normal;font-size:14px;line-height:1}
.so-google-wrap:hover .so-google{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ilha)}
.so-google-wrap:active .so-google{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ilha)}
.gsi{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.01;overflow:hidden}
.gsi:empty{display:none}
.folha-soc .canteiro{height:120px;margin:10px -14px 0}.folha-soc .canteiro .cfoto{width:60px;height:60px;margin:-30px 0 0 -30px;font-size:22px}
.so-campo{margin-top:12px}.so-campo .k{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cinza);margin-bottom:6px}.so-campo .k small{letter-spacing:0;text-transform:none}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{height:32px;padding:0 10px;border:2px solid var(--fita);background:var(--chao);font-family:var(--mono);font-size:11px;color:var(--fita);cursor:pointer}.chip.on{background:var(--fita);color:var(--chao)}
.so-mes{display:block;width:100%;box-sizing:border-box;height:36px;border:2px solid var(--fita);background:var(--chao2);font:inherit;font-size:14px;padding:0 10px;margin-top:6px}
.so-nota-row{display:flex;align-items:center;gap:12px}.so-nota-row b{font-family:var(--display);font-weight:800;font-size:22px;min-width:30px}
#viTexto{display:block;width:100%;box-sizing:border-box;min-height:110px;border:2px solid var(--fita);background:var(--chao2);font:inherit;font-size:14px;padding:8px 10px;resize:vertical}
/* a caixa de marcar da casa (quadro "Review · o check do spoiler", A): quadrado de 22 px, borda de 2 px, canto vivo;
   marcada, enche de tinta com o visto em chão. Vale para "Tem spoiler", "Avisar meus amigos" e "Mostrar quem vai junto" */
.so-check{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:22px;margin-top:14px;cursor:pointer}
.so-check small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;line-height:1.35;color:var(--cinza);margin-top:1px}
.so-check input[type=checkbox]{-webkit-appearance:none;appearance:none;flex:none;width:22px;height:22px;margin:0;border:2px solid var(--fita);border-radius:0;background:var(--chao2) center/16px 16px no-repeat;cursor:pointer}
.so-check input[type=checkbox]:checked{background-color:var(--fita);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3.2L13 4.8' fill='none' stroke='%23EDE6D6' stroke-width='2.6' stroke-linecap='square'/%3E%3C/svg%3E")}
.so-check input[type=checkbox]:focus-visible{outline:2px solid var(--ilha);outline-offset:2px}
.folha-soc .folha-a{margin-top:14px}
.so-acoes{display:flex;gap:8px;margin:10px 0}.so-acoes .btn.on{background:var(--fita);color:var(--chao)}.so-mais{width:40px;padding:0}
.so-comum{margin:12px 0;padding:10px 12px;border:2px solid var(--fita);background:var(--chao2);font-size:13.5px;line-height:1.4}
.so-hero{aspect-ratio:auto;height:200px;background:var(--fita)}.so-hero .canteiro{height:200px}.so-hero .mclose{z-index:2}
.so-hero-min{height:56px}
.so-busca{display:flex;align-items:center;gap:8px;border:2px solid var(--fita);background:var(--chao2);height:44px;padding:0 12px;margin:10px 0}.so-busca svg{width:16px;height:16px}.so-busca input{border:0;background:none;font:inherit;flex:1;min-width:0}
.so-pessoas-abas{margin-bottom:8px}
.so-sug{display:flex;flex-direction:column}
.so-pessoa{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--linha)}
.so-pessoa .txt{border:0;background:none;padding:0;text-align:left;font:inherit;cursor:pointer;min-width:0}.so-pessoa .txt b{display:block;font-size:13.5px}.so-pessoa .txt small{display:block;color:var(--cinza);font-size:12px;line-height:1.3}
.so-pessoa .btn{height:32px}.so-pessoa .btn.on{background:var(--fita);color:var(--chao)}
.so-cad-linha{display:flex;align-items:flex-start;line-height:1.4;gap:8px;font-size:12.5px;color:var(--texto2);padding:8px 0}
.so-cad-linha .linkbtn{font-size:12.5px;padding:0}
.so-cad-txt{margin:0 0 10px;font-size:12.5px;line-height:1.45;color:var(--cinza)}
.so-can-wrap{position:relative;margin:8px 0;overflow:hidden}
.so-can-wrap .cdel{position:absolute;top:0;right:0;bottom:0;width:92px;border:0;background:var(--ilha);color:#fff;font-family:var(--display);font-weight:800;font-size:13px;text-transform:uppercase;cursor:pointer}
/* arrastar para excluir (padrão iOS): o vermelho estica atrás do dedo com o rótulo no canto; armado, o rótulo corre para
   junto da linha. width e margin animam; durante o arrasto o JS desliga a transição e segue o dedo */
.so-can-wrap .cdel,.ag-wrap .ag-del{display:flex;align-items:center;justify-content:flex-end;padding:0;transition:width .2s ease}
.so-can-wrap .cdel>span,.ag-wrap .ag-del>span{flex:none;width:92px;text-align:center;margin-right:0;transition:margin-right .16s ease}
.so-can-wrap.cheio .cdel>span,.ag-wrap.cheio .ag-del>span{margin-right:calc(100% - 92px)}
.so-can-wrap.excluindo,.ag-wrap.excluindo{pointer-events:none}
.so-canhoto{display:grid;grid-template-columns:56px 1fr 14px 72px;gap:0;align-items:stretch;width:100%;border:2px solid var(--fita);background:var(--chao2);padding:0;margin:0;text-align:left;cursor:pointer;font:inherit;color:var(--fita);min-height:96px;position:relative;box-sizing:border-box;transition:transform .2s ease;z-index:1}
.so-canhoto:focus-visible{outline:3px solid var(--ilha);outline-offset:2px}
.so-canhoto .cx{position:absolute;top:-1px;right:-1px;width:26px;height:26px;border:0;background:var(--ilha);color:#fff;font-size:18px;line-height:1;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .15s}
@media (hover:hover) and (pointer:fine){.so-canhoto:hover .cx,.so-canhoto .cx:focus-visible{opacity:1;pointer-events:auto}}
.qrsvg,.qrsvg *{stroke:none!important}
.so-canhoto .cqr{display:block;width:56px;height:56px;padding:0;border:2px solid var(--fita);background:#fff;cursor:zoom-in}.so-canhoto .cqr svg{display:block;width:100%;height:100%}
.so-canhoto.comqr .ctipo{display:none}
.so-canhoto .ccapa{display:block;width:56px;height:auto;min-height:92px;border:0;border-right:2px solid var(--fita);background:var(--linha) center top/cover no-repeat}
.so-canhoto .ctxt{padding:10px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}.so-canhoto .ctxt b{font-family:var(--display);font-weight:800;font-size:15px;line-height:1.1;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.so-canhoto .ctxt small{font-size:10px;color:var(--cinza)}.so-canhoto .ctxt .q{font-size:12px;margin-top:2px}
.so-canhoto .mf{display:block;width:60px;height:10px;margin-top:4px;background:var(--fita);-webkit-mask:var(--meiofio) no-repeat;mask:var(--meiofio) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}
.so-canhoto .cpic{border-left:2px dashed var(--fita);position:relative}.so-canhoto .cpic::before,.so-canhoto .cpic::after{content:"";position:absolute;left:-9px;width:14px;height:14px;border-radius:50%;background:var(--chao);border:2px solid var(--fita);box-sizing:border-box}.so-canhoto .cpic::before{top:-9px;border-top-color:transparent;border-left-color:transparent}.so-canhoto .cpic::after{bottom:-9px;border-bottom-color:transparent;border-right-color:transparent}
.so-canhoto .cdest{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:11px;line-height:1.3}.so-canhoto .cdest small{display:block;font-size:10px;color:var(--cinza)}
.so-canhoto.passado{opacity:.55}
.so-add{display:inline-flex;margin-top:10px;cursor:pointer}
.so-achou{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:2px solid var(--fita);background:var(--chao2);padding:8px 10px}.so-achou b{font-size:14px}.so-achou small{color:var(--cinza)}.so-achou .linkbtn{margin-left:auto;font-size:12px}
.so-lista{display:flex;flex-direction:column;margin-top:4px}.so-item{border:0;border-bottom:1px solid var(--linha);background:none;padding:8px 0;text-align:left;font:inherit;cursor:pointer}.so-item b{display:block;font-size:13.5px}.so-item small{color:var(--cinza)}
.ingvisor{position:fixed;inset:0;z-index:80;background:rgba(30,28,26,.62);display:flex;align-items:center;justify-content:center;padding:28px}
.ingvisor .iv-caixa{background:#fff;width:min(780px,100%);height:min(88vh,1100px);display:flex;flex-direction:column;border:3px solid var(--fita);box-shadow:8px 8px 0 var(--fita);overflow:hidden}
.ingvisor.qr .iv-caixa{width:min(560px,100%);height:auto;max-height:94vh}
.ingvisor .iv-qr{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px;background:#fff;touch-action:pan-y}
.ingvisor .iv-n{font-size:15px;font-weight:600;color:#111;letter-spacing:.06em}
.ingvisor .iv-qrlinha{display:flex;align-items:center;gap:8px}
.ingvisor .iv-seta{width:40px;height:64px;border:2px solid var(--fita);background:var(--chao);font-size:28px;line-height:1;cursor:pointer;flex:none}
@media (max-width:560px){.ingvisor .iv-seta{display:none}}
.so-canhoto .cdest .cqtd{display:block;margin-top:4px;font-size:10px;color:var(--fita);font-weight:600}
.ingvisor .qrgrande{width:min(82vw,62vh,460px);height:auto;display:block}
.ingvisor .iv-qr code{font-size:12px;color:#333;word-break:break-all;text-align:center}
.ingvisor .iv-nav{display:flex;align-items:center;gap:12px;font-size:12px}
@media (max-width:560px){.ingvisor{padding:max(36px,env(safe-area-inset-top)) 12px max(36px,env(safe-area-inset-bottom))}.ingvisor .iv-caixa{height:calc(100vh - 150px);height:calc(100dvh - 80px);box-shadow:none}.ingvisor.qr .iv-caixa{height:auto}}
.ingvisor .iv-h{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:3px solid var(--fita);background:var(--chao)}.ingvisor .iv-h b{flex:1;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingvisor .iv-h small{color:var(--cinza);font-size:11px}
.ingvisor .iv-h .mclose{position:static}
@media (max-width:560px){.ingvisor .iv-h{flex-wrap:wrap;row-gap:6px}.ingvisor .iv-h b{flex:1 1 100%}.ingvisor .iv-h small{flex:1}}
.ingvisor iframe,.ingvisor img{flex:1;width:100%;border:0;object-fit:contain;background:#fff;min-height:0}
.ingvisor .iv-zoom{flex:1;min-height:0;overflow:auto;background:#8a857b;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
.ingvisor .iv-pgs{width:100%;display:flex;flex-direction:column;gap:8px;padding:8px 0;box-sizing:border-box}
.ingvisor .iv-pgs .iv-pag,.ingvisor .iv-pgs img{display:block;width:100%;height:auto;background:#fff;flex:none;object-fit:initial}
.ingvisor .iv-carrega{color:#fff;text-align:center;font-size:11px;margin:40px 0}
.ingvisor .iv-f{text-align:center;font-size:10.5px;color:var(--cinza);padding:8px;background:var(--chao)}
.so-cores{display:flex;gap:8px}.so-cores .cor{width:36px;height:36px;border:2px solid var(--fita);cursor:pointer}.so-cores .cor.on{outline:3px solid var(--fita);outline-offset:2px}.so-cores .c-ilha{background:var(--ilha)}.so-cores .c-copa{background:var(--copa)}.so-cores .c-sodio{background:var(--sodio)}.so-cores .c-areia{background:var(--areia)}
.bnp-voce{border-radius:50%;width:16px;height:16px}
@media (min-width:761px){.so-topo{margin:0;display:grid;grid-template-columns:390px 1fr;gap:0 24px;align-items:start}.so-topo .canteiro{border:2px solid var(--fita)}.so-topo .so-stats{grid-column:2;margin:0}.so-topo .so-topo-txt{grid-column:2}.so-topo .so-mos-wrap{grid-column:2;margin:12px 0 0}}

/* comentários: cabeçalho que abre e fecha, com a quantidade e a média em ilhas */
.so-com-h{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;padding:0;text-align:left;cursor:pointer;color:var(--fita)}
.so-com-h h3{flex:1;margin-bottom:0}
.so-com-h .seta{width:10px;height:10px;border-right:2px solid var(--fita);border-bottom:2px solid var(--fita);transform:rotate(45deg);margin:-4px 6px 0 0;transition:transform .2s}
.so-com-h.aberto .seta{transform:rotate(-135deg);margin-top:4px}
.so-revs{margin-top:4px}
#viNota.prev{color:var(--cinza)}
/* seletor de mês: ano entre setas e doze pedras; o futuro apagado */
.so-meses{margin-top:8px;border:2px solid var(--fita);background:var(--chao2);padding:8px}
.sm-ano{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:8px}.sm-ano b{font-family:var(--display);font-weight:800;font-size:16px;min-width:48px;text-align:center}
.sm-seta{width:32px;height:32px;border:2px solid var(--fita);background:var(--chao);font-size:18px;line-height:1;cursor:pointer;color:var(--fita)}.sm-seta:disabled{opacity:.3;cursor:default}
.sm-grade{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.sm-mes{height:34px;border:2px solid var(--fita);background:var(--chao);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fita);cursor:pointer}
.sm-mes.on{background:var(--ilha);border-color:var(--ilha);color:var(--chao)}.sm-mes:disabled{color:var(--linha);border-color:var(--linha);cursor:default;background:repeating-linear-gradient(45deg,rgba(30,28,26,.08) 0 1px,transparent 1px 6px)}

.so-acoes .share{margin-left:auto}
.nota.claro b{color:var(--chao)}
.so-faixa .txt small .nota{margin-top:3px}
.so-seg-art.on{background:var(--fita);color:var(--chao)}
.so-art{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--linha)}
.so-art .nome{border:0;background:none;padding:0;text-align:left;font:inherit;cursor:pointer;min-width:0}.so-art .nome b{display:block;font-size:14px}.so-art .nome small{display:block;font-family:var(--mono);font-size:10.5px;color:var(--cinza)}
.so-art-ps{display:flex;gap:4px}.so-art-ps .scapa{width:28px;height:38px}
.so-art .btn{height:32px}
/* comentários: a única seção recolhida; pedra com borda, para não se confundir com o fio duplo dos outros títulos */
.so-com{margin-top:6px;padding:0}
.so-com-h{padding:10px 0;margin:0;border:0}
.so-com-h h3{border:0;margin:0;padding:0}
.so-com-h.estatico{cursor:default}
.so-com .src{padding-bottom:10px}
.so-com .so-revs{border-top:1px solid rgba(237,230,214,.25);padding-bottom:4px}

.so-n{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:50%;background:var(--ilha);color:var(--chao);font-family:var(--mono);font-style:normal;font-size:11px;vertical-align:middle;margin-left:4px;border:0;cursor:pointer;line-height:1}
button.so-n:hover{outline:2px solid var(--ilha);outline-offset:2px}
.so-pessoa.saiu .seixo-btn,.so-pessoa.saiu .txt{opacity:.45}
.zchip.geo{width:36px;padding:0;justify-content:center}.zchip.geo svg{width:18px;height:18px;stroke-width:2}.zchip.geo.on{background:var(--ilha);border-color:var(--ilha);color:var(--chao)}
.zchip.geo.pedindo svg{animation:pulsa 1s ease-in-out infinite}@keyframes pulsa{50%{opacity:.3}}
.vkm{display:inline-block;margin-left:8px;font-family:var(--mono);font-weight:500;font-size:11px;color:var(--ilha);vertical-align:middle}
.veu{position:fixed;inset:0;z-index:61;background:repeating-linear-gradient(45deg,rgba(30,28,26,.10) 0 1px,transparent 1px 6px),rgba(30,28,26,.42);opacity:0;transition:opacity .24s cubic-bezier(.2,.7,.2,1)}
.veu.open{opacity:1}
.meu circle{fill:var(--sodio);stroke:var(--fita);vector-effect:non-scaling-stroke}
.meu .halo{fill:var(--sodio);stroke:none;opacity:.35;transform-box:fill-box;transform-origin:center;animation:halo 1.8s ease-out infinite}
@keyframes halo{0%{transform:scale(.6);opacity:.5}100%{transform:scale(1.4);opacity:0}}
@media (prefers-reduced-motion:reduce){.meu .halo{animation:none}}
.sobe.baixo{bottom:calc(var(--bnav-h,64px) + 14px + env(safe-area-inset-bottom,0px))}
@media (min-width:761px){.sobe.baixo{bottom:18px}}

/* o modal da peça tem dois chãos: a calçada clara (o que é do espetáculo e do teatro) e dois blocos de basalto (o que é do guia:
   suas ações, amigos, comentários, fontes), como o bloco preto sobre o mosaico do calçadão */
.app-bloco{background:var(--fita);color:var(--chao);margin:12px -18px 0;padding:12px 18px 14px}
.app-bloco.pe{margin:22px -18px -24px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.app-rotulo{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-bottom:8px}
.app-bloco .btn{border-color:var(--chao);color:var(--chao);background:transparent}
.app-bloco .btn.on,.app-bloco .so-vi.on{background:var(--chao);color:var(--fita)}
.app-bloco .want.on{color:var(--ilha);border-color:var(--chao)}
.app-bloco .so-acoes-peca{display:flex;gap:8px;align-items:center}.app-bloco .so-acoes-peca .share{margin-left:auto}
.app-bloco .so-faixa .txt{color:var(--chao)}
.app-bloco h3{color:var(--chao);border-color:var(--chao)}.app-bloco h3 small{color:var(--chao);opacity:.7}
.app-bloco .so-com-h .seta{border-color:var(--chao)}
.app-bloco .so-rev{border-bottom-color:rgba(237,230,214,.25)}.app-bloco .so-rev .nome{color:var(--chao)}.app-bloco .so-rev small.mono{color:var(--chao);opacity:.7}
.app-bloco .so-rev .mais{color:var(--chao)}.app-bloco .so-spoiler{border-color:var(--chao);color:var(--chao)}
.app-bloco .linkbtn{color:var(--sodio)}.app-bloco .nota b{color:var(--chao)}
.app-bloco .src{color:var(--chao);opacity:.7;border-top:1px solid rgba(237,230,214,.25);padding-top:10px}.app-bloco .src a{color:var(--chao)}
.app-bloco .seixo{border-color:var(--chao)}
.mpreco{display:flex;align-items:center;gap:8px;margin-top:14px}.mpreco .btn{margin-left:auto}
.folha-soc.teclado{transform:translate(-50%,0)}
.folha-soc.teclado #viTexto{min-height:72px}
.app-bloco .src.fontes{font-family:var(--sans);font-weight:400;font-style:italic;font-size:12px;letter-spacing:0;opacity:.55}
.app-bloco .src.fontes a{font-weight:400;text-decoration-thickness:1px}
.so-com-h.estatico .seta{display:none}
/* modais de pessoa (ficha, perfil, pessoas): no centro da tela também no celular, não subindo de baixo */
.overlay.centro{align-items:center;padding:16px max(12px,env(safe-area-inset-left,0px)) calc(16px + env(safe-area-inset-bottom,0px))}
.overlay.centro .modal{border-bottom:3px solid var(--fita);max-height:calc(100svh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}
/* título da peça: o mesmo h2, grudado no topo do modal quando a rolagem passa por ele */
.mbody h2.mtit{position:sticky;top:0;z-index:6;background:var(--chao);margin:0 -18px;padding:6px 18px 8px;transition:box-shadow .2s}
.mbody h2.mtit.preso{box-shadow:0 3px 0 var(--fita)}
.mtit-sentinela{display:block;height:1px;margin-bottom:-1px}
.az.chega{animation:cai .32s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(var(--i,0) * 35ms)}
@media (prefers-reduced-motion:reduce){.az.chega{animation:none}}

/* admin: editar a peça na própria página */
.so-editar-peca{width:40px;padding:0}.app-bloco .so-editar-peca{background:var(--ilha);border-color:var(--ilha);color:var(--chao)}.so-editar-peca svg{width:18px;height:18px;stroke-width:2}
.folha-soc.larga{width:min(620px,calc(100% - 24px))}
.ed-crop{display:grid;grid-template-columns:2fr 1fr;gap:8px;align-items:start}
.ed-hero,.ed-card{background-size:cover;background-repeat:no-repeat;border:2px solid var(--fita);cursor:grab;touch-action:none}
.ed-hero{aspect-ratio:16/8}.ed-card{aspect-ratio:230/150}
.ed-hero.arrasta,.ed-card.arrasta{cursor:grabbing;outline:3px solid var(--ilha);outline-offset:-3px}
.ed-pos{align-self:center;color:var(--cinza);font-size:11px;margin-left:auto}
.ed-crop+.chips{margin-top:8px;align-items:center}
.ed-ficha{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow:auto;margin-bottom:8px}
.ed-bts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ed-bts .so-nota{margin:0;font-size:11px}
.ed-linha{display:grid;grid-template-columns:1fr 1.4fr 36px;gap:6px}.ed-linha.ed-foto{grid-template-columns:1.6fr 1fr 1fr 36px}.ed-linha.ed-temp{grid-template-columns:1.4fr 1fr .8fr .8fr 1.2fr 36px}.ed-linha .so-mes{margin-top:0}.ed-linha .btn{height:36px;padding:0}
select.so-mes{appearance:auto}
.ed-zoom{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;margin-top:10px}.ed-zoom .k{margin:0}
.ed-zoom input{accent-color:var(--ilha);width:100%}.ed-zoom b{font-size:11px;min-width:44px;text-align:right}
.ed-hero,.ed-card{background-color:var(--chao)}
/* foto do perfil: o seixo grande do canteiro é um botão na página Você */
.cfoto-btn{position:absolute;left:50%;top:50%;width:92px;height:92px;margin:-46px 0 0 -46px;border:0;padding:0;background:none;cursor:pointer;border-radius:50%}
.cfoto-btn .cfoto{position:static;margin:0;width:92px;height:92px}
.cfoto-lapis{position:absolute;right:-2px;bottom:-2px;width:28px;height:28px;border-radius:50%;background:var(--ilha);color:var(--chao);border:2px solid var(--chao);display:grid;place-items:center;font-style:normal;font-weight:800;font-size:16px;line-height:1}
.so-foto-ops{display:flex;flex-direction:column;gap:8px;margin-top:12px}.so-foto-ops .btn{height:46px;gap:10px;cursor:pointer}.so-foto-ops svg{width:20px;height:20px;stroke-width:2}
.so-foto-ops .linkbtn{align-self:center;font-size:12px;margin-top:4px}
/* iOS dá zoom na página ao focar campo com letra menor que 16 px: no toque, todo campo tem 16 px (a página não muda de escala, só rola) */
@media (pointer:coarse){input,textarea,select{font-size:16px !important}}
/* recorte da foto: a imagem dentro da bola, com o resto apagado em volta */
.rec-area{display:grid;place-items:center;margin:14px 0 4px;padding:24px 0;background:var(--fita);overflow:hidden;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.rec-area.arrasta{cursor:grabbing}
.rec-bola{position:relative;width:240px;height:240px;border-radius:50%;overflow:hidden;border:3px solid var(--chao);box-shadow:0 0 0 2000px rgba(30,28,26,.35);background:var(--areia);pointer-events:none}
.rec-bola img{position:absolute;left:50%;top:50%;max-width:none;user-select:none;-webkit-user-drag:none;pointer-events:none}

/* confirmação da casa (no lugar do confirm do navegador): pedra centrada acima de folhas e modais */
.conf-veu{z-index:90}
.conf{position:fixed;left:50%;top:50%;transform:translate(-50%,calc(-50% + 12px));width:min(360px,calc(100% - 32px));background:var(--chao);color:var(--fita);border:2px solid var(--fita);box-shadow:6px 6px 0 var(--fita);padding:16px 16px 14px;z-index:91;opacity:0;transition:opacity .2s cubic-bezier(.2,.7,.2,1),transform .2s cubic-bezier(.2,.7,.2,1)}
.conf.open{opacity:1;transform:translate(-50%,-50%)}
.conf-t{display:block;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:15px;letter-spacing:.02em}
.conf p{margin:8px 0 4px;font-size:14px;line-height:1.4}
.conf .folha-a{margin-top:14px}.conf .folha-a .btn{flex:1}
.conf .btn.perigo{background:var(--ilha);border-color:var(--ilha);color:var(--chao)}
.so-tl .tl-lnk{display:inline;border:0;background:none;padding:0;margin:0;font:inherit;font-weight:700;color:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;transition:text-decoration-color .15s}
.so-tl .tl-lnk:hover,.so-tl .tl-lnk:focus-visible{text-decoration-color:currentColor}

/* ---------- Você em três blocos: escuro é gente (você, sua gente), claro é peça (próximos, diário) ---------- */
.vbloco{scroll-margin-top:calc(var(--hdr-h) + 8px)}
.vbloco:not(.esc){padding:22px 0 20px}
.vbloco.esc{background:var(--fita);color:var(--chao);margin:0 -16px;padding:18px 16px 20px}
.vtopo{margin-top:-6px}
.vtopo-l{display:flex;gap:12px;align-items:center}
.vfoto{border:0;background:none;padding:0;cursor:pointer;flex:none;color:inherit}
.vcant{position:relative;display:block;width:104px;height:80px;flex:none}
.vcant svg{position:absolute;inset:0;width:100%;height:100%}
.vcfoto{position:absolute;left:52%;top:50%;width:50px;height:50px;margin:-25px 0 0 -25px;border-radius:50%;border:2px solid var(--chao);background:var(--areia);overflow:hidden;display:grid;place-items:center;font-style:normal;font-family:var(--display);font-weight:800;font-size:18px;color:var(--fita);box-sizing:border-box}
.vcfoto img{width:100%;height:100%;object-fit:cover;display:block}
.vlapis{position:absolute;left:calc(52% + 12px);top:calc(50% + 10px);width:20px;height:20px;border-radius:50%;background:var(--ilha);color:var(--chao);border:2px solid var(--fita);display:grid;place-items:center;font-style:normal;font-weight:700;font-size:13px;line-height:1;box-sizing:border-box}
.vtopo-n{flex:1;min-width:0}
.vtopo-n b{display:block;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:22px;line-height:1;overflow-wrap:anywhere}
.vtopo-n small{display:block;opacity:.7;margin-top:5px;font-size:11px}
.vtopo-n p{margin:6px 0 0;font-size:13px;line-height:1.35;opacity:.85}
.vmais{width:40px;height:40px;padding:0;border-color:var(--chao);color:var(--chao);background:transparent;flex:none;align-self:flex-start}
.vmais svg{width:20px;height:20px;fill:currentColor;stroke:none}
.vtopo .so-stats{margin:16px 0 0;border-color:var(--chao)}
.vtopo .so-stats>button{border:0;border-right:2px solid var(--chao);background:none;color:var(--chao);padding:9px 2px 8px;text-align:center;cursor:pointer;font:inherit;min-width:0}
.vtopo .so-stats>button:last-child{border-right:0}
.vtopo .so-stats>button:hover,.vtopo .so-stats>button:focus-visible{background:rgba(237,230,214,.1)}
.vtopo .so-stats small{color:var(--chao);opacity:.7;font-size:9px}
.vtopo-p{margin:12px 0 14px;font-size:14px;line-height:1.45;opacity:.85;max-width:520px}
.vbloco.esc .btn.vtopo-entra{height:46px;gap:10px;background:var(--chao);border-color:var(--chao);color:var(--fita);box-shadow:4px 4px 0 var(--ilha)}
.vtopo-entra .g{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--ilha);color:var(--chao);font-family:var(--display);font-weight:800;font-style:normal;font-size:13px;line-height:1}
.vmenu{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.vrot{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.vtit{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:26px;line-height:1;margin:4px 0 0;color:var(--chao)}
.vcorpo{margin-top:4px}
.vdia{display:flex;align-items:baseline;gap:8px;padding:18px 0 6px;border-bottom:1px solid var(--fita)}
.vdia b{font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.vdia span{font-family:var(--mono);font-size:11px;color:var(--cinza);text-transform:uppercase;letter-spacing:.04em}
.vdia.hoje b{color:var(--ilha)}
.vvazio{padding:16px 0 4px;font-size:14px;line-height:1.45;color:var(--texto2)}.vvazio .linkbtn{font-size:14px}
.vdiario-l{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0 0}.vdiario-l .mono{font-size:10.5px;color:var(--cinza);letter-spacing:.06em}
.vpe{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}
.btn.bil{background:var(--copa);border-color:var(--copa);color:var(--chao)}
/* tinta clara dentro do bloco escuro */
.vbloco.esc .so-abas{border-color:var(--chao);margin-top:14px}
.vbloco.esc .so-abas button{color:rgba(237,230,214,.75)}
.vbloco.esc .so-abas button.on{background:var(--chao);color:var(--fita)}
.vbloco.esc .btn{border-color:var(--chao);color:var(--chao);background:transparent}
.vbloco.esc .btn.on,.vbloco.esc .btn.primary{background:var(--chao);color:var(--fita)}
.vbloco.esc .linkbtn{color:var(--sodio)}
.vbloco.esc .so-tl,.vbloco.esc .so-art,.vbloco.esc .so-pessoa{border-bottom-color:rgba(237,230,214,.25)}
.vbloco.esc .so-tl .txt small,.vbloco.esc .so-art .nome small,.vbloco.esc .so-pessoa .txt small{color:var(--chao);opacity:.7}
.vbloco.esc .so-tl .prev{color:var(--chao);opacity:.85}
.vbloco.esc .so-art .nome,.vbloco.esc .so-pessoa .txt{color:var(--chao)}
.vbloco.esc .seixo{border-color:var(--chao)}
.vbloco.esc .so-vazio,.vbloco.esc .vvazio,.vbloco.esc .so-vazio>b{color:var(--chao)}
/* sua gente · amigos: os rostos de quem você segue, amigos primeiro; rola para o lado */
.so-gt{display:flex;gap:14px;overflow-x:auto;padding:16px 0 4px;margin:0 -16px;padding-left:16px;padding-right:16px;scrollbar-width:none}.so-gt::-webkit-scrollbar{display:none}
.so-gt-p{flex:none;display:flex;flex-direction:column;align-items:center;gap:5px;width:64px;border:0;background:none;padding:0;font:inherit;color:var(--chao);cursor:pointer}
.so-gt-p span{font-size:12.5px;max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.so-gt-p small{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--sodio);margin-top:-3px}
@media (min-width:761px){.so-gt{margin:0;padding-left:0;padding-right:0}}
.vbloco.esc .so-nota-demo{color:var(--chao);opacity:.55}
.vbloco.esc .favpainel{margin-top:14px}
@media (min-width:761px){.vbloco.esc{margin:0;padding:22px 24px 24px}.vtopo{margin-top:6px}.vtopo .so-stats{max-width:560px}}
/* carteira: leitura de vários ingressos de uma vez */
.ing-leva{margin-top:12px;max-height:50vh;overflow:auto}
.ing-l{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--linha)}
.ing-l>i{width:22px;height:22px;border-radius:50%;border:2px solid var(--fita);display:grid;place-items:center;font-style:normal;font-weight:700;font-size:12px;box-sizing:border-box}
.ing-l.ok>i{background:var(--copa);border-color:var(--copa);color:var(--chao)}
.ing-l.escolher>i{background:var(--sodio);border-color:var(--sodio);color:var(--fita)}
.ing-l.lendo>i{border-color:var(--linha);border-top-color:var(--fita);animation:gira .8s linear infinite}
.ing-l span{min-width:0}.ing-l b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ing-l small{display:block;font-size:12px;color:var(--cinza)}.ing-l.ok small{color:var(--fita)}
@keyframes gira{to{transform:rotate(360deg)}}

/* ---------- som: artistas no Spotify ---------- */
.som{margin-top:18px}
.som h3{margin-bottom:8px}
.som-a{display:grid;grid-template-columns:44px 1fr 36px;gap:12px;align-items:center;width:100%;padding:8px 0;border:0;border-bottom:1px solid var(--linha);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.som-a img,.som-a .som-sem{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--fita);box-sizing:border-box;display:block;background:var(--areia)}
.som-a b{display:block;font-size:14px}.som-a small{display:block;font-family:var(--mono);font-size:10.5px;color:var(--cinza);text-transform:uppercase;letter-spacing:.04em}
.som-play{display:block;width:36px;height:36px;transition:transform .15s}
.som-a:hover .som-play{transform:scale(1.06)}
.som-frame{display:block;width:100%;height:152px;border:0;border-radius:12px;margin:8px 0}
.descobrir{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;width:100%;margin:14px 0 4px;padding:12px 14px;border:0;background:var(--fita);color:var(--chao);text-align:left;cursor:pointer;font:inherit}
.descobrir i{width:44px;height:44px;border-radius:50%;background:var(--ilha);display:grid;place-items:center;font-style:normal;font-size:16px;padding-left:3px;box-sizing:border-box}
.descobrir b{display:block;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:16px;line-height:1.05}
.descobrir small{display:block;opacity:.75;font-size:12.5px;margin-top:3px}
.descobrir:hover i{transform:scale(1.06)}
/* área Descobrir (modal centrado) */
.mbody.desc{padding-top:18px;position:relative}
.desc .mclose{top:10px;right:10px}
.desc-h{display:flex;align-items:baseline;gap:10px;padding-right:48px;margin-bottom:12px}.desc-h small{color:var(--cinza)}
.desc-card{display:grid;grid-template-columns:1fr;gap:12px;align-items:start;touch-action:pan-y;user-select:none}
.desc-txt{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:13px}
.desc-tit{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:18px;line-height:1.05;overflow-wrap:anywhere}
.desc-q{font-size:11px;color:var(--ilha)}
.desc-art{color:var(--cinza)}
.desc-acoes{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}.desc-acoes .btn{height:44px;padding:0 16px}
.desc-player{min-height:352px;margin:14px 0 8px}.desc-player iframe{display:block;width:100%;border:0;border-radius:12px;height:352px}
.desc-nav{display:grid;grid-template-columns:52px 1fr;gap:8px}
.desc-nota{display:block;margin-top:8px;color:var(--cinza);font-size:11.5px}

.desc-player{display:grid}.desc-carrega{place-self:center;font-size:10.5px;color:var(--cinza);letter-spacing:.08em}
.vsinc{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin-top:12px;font-size:12.5px;opacity:.9}.vsinc .linkbtn{color:var(--sodio);font-size:12.5px}
.vmenu .vmenu-apaga{margin-top:8px;color:var(--ilha);font-size:12.5px;align-self:center}

/* ---------- agenda do Você: a linha da sessão (quadro "Você · agenda, opção B") ---------- */
.ag-wrap{position:relative;overflow:hidden;border-bottom:1px solid var(--linha)}
.ag-wrap .ag-del{position:absolute;top:0;right:0;bottom:0;width:92px;border:0;background:var(--ilha);color:#fff;font-family:var(--display);font-weight:800;font-size:11px;line-height:1.2;text-transform:uppercase;cursor:pointer}
.sess.ag{position:relative;z-index:1;display:grid;grid-template-columns:66px minmax(0,1fr);column-gap:14px;row-gap:8px;align-items:stretch;padding:12px 60px 12px 0;border-bottom:0;background:var(--chao);transition:transform .2s ease}
.ag .ag-h{display:none}
.ag .ag-cartaz{grid-column:1;grid-row:1;width:66px;min-height:60px;border:2px solid var(--fita);box-sizing:border-box;background:var(--linha) center top/cover no-repeat;cursor:pointer}
.ag .ag-txt{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:5px;min-width:0}
.ag .ag-q{display:flex;align-items:center;gap:10px}.ag .ag-q b{font-size:15px;font-weight:600}
.ag-gen{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fita)}
.ag-gen i{width:8px;height:8px;display:block;background:var(--fita)}
.ag-gen[data-g=teatro] i,.ag-gen[data-g=danca] i,.ag-gen[data-g=mpb] i{background:var(--copa)}
.ag-gen[data-g=musical] i,.ag-gen[data-g=samba] i,.ag-gen[data-g=forro] i{background:var(--ilha);border-radius:50%}
.ag-gen[data-g=infantil] i{background:var(--sodio)}
.ag-gen[data-g=opera] i,.ag-gen[data-g=bale] i,.ag-gen[data-g=choro] i{background:var(--chao);border:1.5px solid var(--fita);box-sizing:border-box}
.ag .t{font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:16px;line-height:1.15;cursor:pointer}
.ag .t:hover{text-decoration:underline;text-decoration-thickness:2px}
.ag .w{color:var(--texto2);font-size:13px;line-height:1.35}.ag .w .favmark{margin-right:4px}
.ag-wrap+.conflict{margin:0;padding:6px 0 8px 80px;border-bottom:1px solid var(--linha)}
@media (min-width:761px){.ag-wrap+.conflict{padding-left:154px}}
.ag .w .ag-mapa{display:inline-flex;vertical-align:-3px;margin-left:5px;color:var(--ilha);padding:4px;margin-top:-4px;margin-bottom:-4px;margin-right:-4px;background:none;border:0}.ag .w .ag-mapa svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
.ag .ag-gente{grid-column:2;grid-row:2}
.so-vao{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--texto2)}.so-vao .seixo{width:22px;height:22px;font-size:9px}
.ag .tk{position:absolute;top:12px;right:8px;width:40px;height:40px;box-sizing:border-box;border:2px solid var(--fita);display:grid;place-items:center;color:#EDE6D6;cursor:pointer;padding:0;text-decoration:none;font:inherit}
.ag .tk svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9}.ag .tk svg .ch{fill:currentColor;stroke:none}
.ag .tk.tem{background:var(--copa);border-color:var(--copa)}
/* sem ingresso guardado: o "Comprar" do modal da peça (mesmo botão; no celular, o tamanho das sessões do modal) */
.ag .btn.buy{position:absolute;top:12px;right:8px;height:28px;padding:0 8px;font-size:10px}
.sess.ag.comcompra{padding-right:92px}
.ag .tk .tkt{display:none}
.ag .tk small{position:absolute;right:-7px;top:-8px;min-width:17px;height:17px;border-radius:9px;background:var(--fita);color:var(--chao);font-family:var(--mono);font-size:9.5px;display:grid;place-items:center;padding:0 3px;box-sizing:border-box}
.ag .ag-x{display:none}
@media (min-width:761px){
  .sess.ag{grid-template-columns:56px 58px minmax(0,1fr) minmax(0,260px) auto;column-gap:18px;align-items:center;padding:12px 8px}
  .ag .ag-h{display:block;grid-column:1;grid-row:1;font-size:15px;font-weight:600}
  .ag .ag-q b{display:none}
  .ag .ag-cartaz{grid-column:2;width:58px;height:78px;min-height:0}
  .ag .ag-txt{grid-column:3}.ag .t{font-size:18px}
  .ag .ag-gente{grid-column:4;grid-row:1}
  .ag .tk{position:static;grid-column:5;grid-row:1;width:auto;height:36px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;font-family:var(--display);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
  .ag .tk svg{width:17px;height:17px}.ag .tk .tkt{display:inline}.ag .tk small{display:none}
  .ag .btn.buy{position:static;grid-column:5;grid-row:1;height:36px;padding:0 12px;font-size:12px}.sess.ag.comcompra{padding-right:8px}
  .ag-wrap .ag-del{display:none}
}
@media (hover:hover) and (pointer:fine){
  .ag .ag-x{display:block;position:absolute;top:-1px;right:-1px;width:26px;height:26px;border:0;background:var(--ilha);color:#fff;font-size:18px;line-height:1;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .15s;z-index:2}
  .sess.ag:hover .ag-x,.ag .ag-x:focus-visible{opacity:1;pointer-events:auto}
  .sess.ag:hover{background:#F4EFE3}
}

/* ---------- acervo: peças indicadas que saíram de cartaz (quadro "Acervo") ----------
   mesma calçada, desbotada: foto em preto e branco (luminosidade da foto sobre cinza) e a fita da última temporada */
.card.fora .img:not(.noimg),.mhero.fora:not(.noimg),.prow.fora .pimg:not(.noimg){background-color:#8a857b;background-blend-mode:luminosity}
.prow.fora .pimg.noimg{filter:grayscale(1)}
.fitacz{position:absolute;left:0;right:0;bottom:0;z-index:1;background:var(--fita);color:var(--chao);font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mhero .fitacz{font-size:10.5px;padding:7px 18px}
.mhero.fora.noimg::after{display:none}
.mhero.acv{height:48px;background:var(--cinza)}.mhero.acv::before{opacity:.45}.mhero.acv::after{background:var(--ilha)}
.mhero.pessoa::after{background:var(--ilha)}
.vnome{font-weight:600}
.acv-anos{color:var(--cinza);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.app-nota{margin:10px 0 0;font-size:12.5px;line-height:1.4;opacity:.85}
/* temporadas: linha do tempo, a última em vermelho */
.temps{list-style:none;margin:4px 0 6px;padding:0}
.temps li{position:relative;padding:0 0 12px 24px;font-size:14px;line-height:1.35}
.temps li::before{content:"";position:absolute;left:5px;top:6px;bottom:-6px;width:2px;background:var(--fita)}
.temps li:last-child::before{display:none}
.temps li::after{content:"";position:absolute;left:0;top:3px;width:12px;height:12px;border-radius:50%;border:2px solid var(--fita);background:var(--chao);box-sizing:border-box}
.temps li.ult::after{background:var(--ilha);border-color:var(--ilha)}
.temps b{display:block;font-weight:700}
.temps span{display:block;color:var(--texto2);font-size:13px}
.temps small{display:block;font-size:11px;color:var(--cinza);text-transform:uppercase;margin-top:2px}
.temps small.dias{text-transform:none;font-family:var(--sans,inherit);font-size:12px;line-height:1.35}
/* fotos: faixa que rola de lado, com crédito */
.acv-fotos{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;margin:4px -18px 6px;padding:0 18px 6px;scrollbar-width:thin}
.acv-fotos figure{flex:none;width:min(240px,70vw);margin:0;scroll-snap-align:start}.acv-fotos figure:first-child{width:min(320px,86vw)}.acv-fotos figure:first-child img{height:200px}
.acv-fotos img{display:block;width:100%;height:160px;object-fit:cover;border:2px solid var(--fita);background:var(--linha)}
.acv-fotos figcaption{font-size:9.5px;color:var(--cinza);margin-top:4px;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* na ficha da peça antiga, quem está em cartaz hoje: uma linha sob o nome, como o "em cartaz" dos palcos favoritos */
.painel .az b em.ec{display:block;font-style:normal;font-family:var(--mono);font-weight:600;font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--copa);margin-top:2px}
/* a porta: a mesma barra do "Descobrir pelo som", na versão clara */
.descobrir.acv{background:var(--chao2);color:var(--fita);border:2px solid var(--fita)}
.descobrir.acv i{background:var(--fita);padding:0}.descobrir.acv i svg{width:22px;height:22px;fill:none;stroke:var(--chao);stroke-width:2}
.descobrir.acv small{opacity:1;color:var(--texto2)}
.descobrir.acv.rodape{margin:28px 0 8px}
/* a seção: topo fixo (busca e prêmios), lista por ano */
.acv-txt{font-size:12.5px;line-height:1.4;color:var(--cinza);margin:2px 0 8px}
.acv-head h2{font-size:22px;margin:0}.acv-head h2 small{font-size:12px;color:var(--cinza);margin-left:8px;font-weight:500}
.acv-busca{display:flex;align-items:center;gap:8px;height:42px;border:2px solid var(--fita);background:var(--chao2);padding:0 10px;box-sizing:border-box}
.acv-busca svg{width:16px;height:16px;fill:none;stroke:var(--fita);stroke-width:2;flex:none}
.acv-busca input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:15px;color:var(--fita);outline:none}
.acv-chips{flex-wrap:nowrap;overflow-x:auto;margin:8px -18px 0;padding:0 18px 2px;scrollbar-width:none}.acv-chips::-webkit-scrollbar{display:none}
.acv-chips .chip{flex:none}
.acv-ano{margin-top:18px}
.acv-mais{width:100%;justify-content:center;margin:14px 0 4px}
/* o aviso de que uma peça marcada voltou, no topo do Você */
.vaviso{padding-top:14px;padding-bottom:16px}
.vav{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:start}
.vav .pimg{display:block;width:52px;height:68px;border:2px solid var(--chao);background:var(--linha) center top/cover no-repeat}
.vav b{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:15px;line-height:1.1}
.vav p{margin:4px 0 10px;font-size:13.5px;line-height:1.4}
.vav-a{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- dividir ingressos (quadro "Carteira · dividir ingressos") ---------- */
.so-canhoto .cde{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--texto2);margin-top:3px;letter-spacing:.02em}
.so-canhoto .cde .seixo{width:20px;height:20px;font-size:8px;border-width:1.5px}
.so-canhoto .cde .pilha .seixo+.seixo{margin-left:-6px}
.ingvisor .iv-h .btn.dark{background:var(--fita);color:var(--chao);border-color:var(--fita);gap:6px}
.ingvisor .iv-h .btn.dark svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.ingvisor .iv-dono{display:flex;align-items:center;gap:10px;width:min(320px,100%);padding:7px 10px;border:2px solid var(--fita);background:var(--chao2);box-sizing:border-box;text-align:left}
.ingvisor .iv-dono b{display:block;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:14px;line-height:1.1}
.ingvisor .iv-dono small{display:block;font-size:10px;color:var(--cinza);text-transform:uppercase;margin-top:2px}
.vav-ing .seixo{width:44px;height:44px;font-size:14px;border-color:var(--chao)}
.vav.vav-ing{grid-template-columns:44px 1fr}

/* dividir: o modal centrado (quadro "Compartilhar ou enviar", desenho B) */
.dv-veu{z-index:84}
.dvcx{position:fixed;left:50%;top:50%;transform:translate(-50%,calc(-50% + 12px));width:min(420px,calc(100% - 24px));max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px);overflow:auto;overscroll-behavior:contain;background:var(--chao);color:var(--fita);border:3px solid var(--fita);box-shadow:8px 8px 0 var(--fita);z-index:85;opacity:0;transition:opacity .2s cubic-bezier(.2,.7,.2,1),transform .2s cubic-bezier(.2,.7,.2,1);box-sizing:border-box}
.dvcx.open{opacity:1;transform:translate(-50%,-50%)}
.dvcx.teclado,.dvcx.teclado.open{transform:translateX(-50%)}
@media (max-width:560px){.dvcx{box-shadow:5px 5px 0 var(--fita);width:calc(100% - 20px)}}
/* a banda preta, como nos outros modais da carteira; o voltar ("← Escolha") fica no lugar do rótulo */
.dv-h{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:1fr auto;gap:0 8px;align-items:start;padding:10px 14px 12px;background:var(--fita);color:var(--chao)}
.dv-h .app-rotulo{grid-column:1;grid-row:1;display:flex;align-items:center;height:26px;margin:0 0 6px}
.dv-h b{grid-column:1;grid-row:2;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:18px;line-height:1.05;letter-spacing:-.01em}
.dv-h small{grid-column:1;grid-row:3;font-family:var(--mono);font-size:10px;opacity:.75;margin-top:4px;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dv-fecha{grid-column:2;grid-row:1/4;border:0;background:none;font-size:24px;line-height:1;padding:0 2px;color:var(--chao);cursor:pointer}
.app-rotulo.volta{opacity:1}
/* 3 · Enviar: a régua de ingressos, grudada logo abaixo da banda; embaixo, só o ingresso aberto */
.dv-regua{position:sticky;top:var(--dvh,86px);z-index:1;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;padding:10px 14px;background:var(--chao);border-bottom:3px double var(--fita)}
.dv-cel{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:6px 4px;border:2px solid var(--fita);background:var(--chao2);font:inherit;color:var(--fita);cursor:pointer}
.dv-cel b{font-family:var(--display);font-weight:800;font-size:14px;line-height:1}
.dv-cel small{display:block;max-width:100%;font-family:var(--mono);font-size:8.5px;text-transform:uppercase;color:var(--cinza);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dv-cel .seixo{width:18px;height:18px;font-size:7px;border-width:1.5px}
.dv-cel.vz{border-style:dashed;background:none}
.dv-cel.off{border-color:var(--linha);color:var(--cinza);cursor:default}
.dv-cel.on{background:var(--fita);border-color:var(--fita);border-style:solid;color:var(--chao)}.dv-cel.on small{color:var(--chao);opacity:.8}
.dv-cel.on.vz{background:var(--ilha);border-color:var(--ilha)}
.dv-txt{margin:0;padding:0 14px 14px;font-size:12.5px;line-height:1.45;color:var(--cinza)}
.dv-op{display:block;width:100%;padding:12px 14px 14px;border:0;background:none;font:inherit;color:var(--fita);text-align:left;cursor:pointer}
.dv-op:hover .dv-ot,.dv-op:focus-visible .dv-ot{color:var(--ilha)}.dv-op:disabled{opacity:.45;cursor:default}
.dv-op:focus-visible{outline:3px solid var(--ilha);outline-offset:-3px}
.dv-cena{display:block;width:100%;height:auto;border:2px solid var(--fita);box-sizing:border-box;background:var(--chao)}
.dv-ot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:22px;text-transform:uppercase;letter-spacing:-.01em;line-height:1}
.dv-ot i{font-style:normal;font-size:26px}
.dv-od{display:block;font-size:13.5px;line-height:1.4;color:var(--texto2);margin-top:5px}
.dv-oe{display:flex;align-items:center;gap:6px;margin-top:8px;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;color:var(--texto2)}
.dv-oe .seixo{width:20px;height:20px;font-size:8px;border-width:1.5px}.dv-oe .seixo+.seixo{margin-left:-10px}
.dv-ou{position:relative;border-top:3px solid var(--fita)}
.dv-ou span{position:absolute;left:50%;top:-12px;transform:translateX(-50%);background:var(--fita);color:var(--chao);font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.12em;padding:4px 9px;text-transform:uppercase}
.dv-pe{padding:9px 14px 11px;border-top:1px solid var(--linha);font-size:10px;color:var(--cinza)}
.dv-mini{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center;padding:12px 14px;border-bottom:3px double var(--fita)}
.dv-mini-c{display:block;width:96px;height:auto;border:1.5px solid var(--fita)}
.dv-mini b{display:block;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:16px;text-transform:uppercase;line-height:1.05}
.dv-mini small{display:block;font-size:12.5px;line-height:1.35;color:var(--texto2);margin-top:4px}
.dv-sub{font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:12px 14px 4px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.dv-sub small{font-family:var(--mono);font-size:10px;color:var(--cinza);text-transform:none;letter-spacing:0;font-weight:500;font-variation-settings:normal}
.dv-pes{display:grid;grid-template-columns:30px 1fr auto auto;gap:10px;align-items:center;padding:7px 14px;border-bottom:1px solid var(--linha);font-size:14px}
.dv-pes small{display:block;font-family:var(--mono);font-size:10px;color:var(--cinza);text-transform:uppercase}
.dv-pes .btn{height:32px;padding:0 10px;font-size:11px}.dv-pes .btn:disabled{opacity:.4}
.dv-pes.off{opacity:.55}
.dv-pes .linkbtn{font-size:12px}
.dv-x{border:0;background:none;font-size:20px;line-height:1;color:var(--cinza);cursor:pointer;padding:0 2px}.dv-x:hover{color:var(--ilha)}
.dv-vazio{margin:12px 14px 4px;font-size:13.5px;line-height:1.4;color:var(--texto2)}
.dv-link{display:flex;gap:8px;padding:6px 14px 4px}.dv-link input{flex:1;min-width:0}
.dv-nota{display:block;padding:4px 14px 4px;font-size:9.5px;color:var(--cinza);line-height:1.45}
.dv-filtro{display:block;width:calc(100% - 28px);margin:12px 14px 2px;box-sizing:border-box}
.dv-ing{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--linha)}
.dv-ing>span>small{display:block;font-size:9.5px;color:var(--cinza);margin-top:4px}
.dv-ing.aberta{background:var(--chao2)}
.dv-qr{width:44px;height:44px;padding:0;border:2px solid var(--fita);background:#fff;cursor:zoom-in}.dv-qr svg,.dv-qr i{display:block;width:100%;height:100%}
.dv-slot{display:flex;align-items:center;gap:8px;width:100%;min-height:34px;padding:4px 8px;border:2px solid var(--fita);background:var(--chao2);font:inherit;font-size:13px;color:var(--fita);text-align:left;cursor:pointer;box-sizing:border-box}
.dv-slot em{margin-left:auto;font-style:normal;font-family:var(--mono);font-size:9.5px;color:var(--cinza);text-transform:uppercase;text-align:right}
.dv-slot .seixo{width:22px;height:22px;font-size:8.5px;border-width:1.5px}
.dv-slot.vz{border-style:dashed;background:none;color:var(--texto2)}
.dv-slot.off{border-color:var(--linha);color:var(--cinza);font-size:12px;cursor:default}
.dv-acoes{display:flex;gap:8px;flex-wrap:wrap;padding:8px 14px 10px 68px;background:var(--chao2);border-bottom:1px solid var(--linha)}.dv-acoes .btn{height:32px;font-size:11px}
.dv-inline{background:var(--chao2);border-bottom:3px double var(--fita);padding-bottom:2px}
.dv-inline .dv-pes{border-color:var(--linha)}/* convite por link (quadro "Carteira · convite"): quem mandou, o canhoto com o QR fechado, e então o botão */
.cv-topo{position:relative;background:var(--fita);color:var(--chao);padding:14px 16px 16px}
.cv-topo .dv-fecha{position:absolute;right:10px;top:8px;color:var(--chao)}
.cv-de{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center;margin-top:10px}
.cv-de b{display:block;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);text-transform:uppercase;font-size:20px;line-height:1.05}
.cv-de small{display:block;font-size:10px;opacity:.75;margin-top:5px;text-transform:uppercase}
.seixo.cv-foto{width:64px;height:64px;font-size:20px;border:3px solid var(--chao)}
.seixo.cv-foto.p{width:20px;height:20px;font-size:8px;border-width:1.5px;border-color:var(--fita)}
.cv-topo.apagado .cv-foto{filter:grayscale(1);opacity:.7}
.so-canhoto.cv-can{margin:16px 16px 0;width:auto;cursor:default}
.cv-can .cde{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--texto2);margin-top:3px}
.cv-cad{display:grid;place-items:center;width:52px;height:52px;border:2px solid var(--fita);box-sizing:border-box;background:repeating-linear-gradient(135deg,var(--fita) 0 2px,var(--areia) 2px 6px)}
.cv-cad svg{width:24px;height:24px;padding:3px;box-sizing:border-box;border-radius:50%;background:var(--chao);border:2px solid var(--fita);fill:var(--fita);stroke:var(--fita)}
.cv-qr{display:block;width:56px;height:56px;border:2px solid var(--fita);background:#fff}.cv-qr svg{display:block;width:100%;height:100%}
.cv-corpo{padding:14px 16px 16px}
.cv-passos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.cv-passos span{border-top:3px solid var(--fita);padding-top:6px;font-size:12px;line-height:1.3;color:var(--texto2)}
.cv-passos b{display:block;font-family:var(--mono);font-size:10px;color:var(--fita)}
.btn.cv-entra{width:100%;height:52px;justify-content:center;gap:12px;background:var(--fita);border-color:var(--fita);color:var(--chao);font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:15px;text-transform:uppercase;letter-spacing:.04em;box-shadow:4px 4px 0 var(--ilha)}
.btn.cv-entra .g{width:30px;height:30px;border-radius:50%;background:var(--ilha);display:grid;place-items:center;font-style:normal;font-weight:800;color:var(--chao)}
.cv-alt{display:block;margin:14px auto 0;font-size:12.5px}
.cv-nota{display:block;margin-top:12px;font-size:9.5px;color:var(--cinza);line-height:1.5}
.cv-bts{display:flex;gap:8px}.cv-bts .btn{flex:1;height:44px;justify-content:center}
.cv-p{margin:0 0 14px;font-size:14px;line-height:1.45}
/* ingressos por e-mail: configurações e "qual peça?" na faixa */
.so-canhoto .cqual{align-self:flex-start;margin-top:4px;font-size:12px;color:var(--ilha)}
.em-linha{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--linha)}
.em-linha span{flex:1;min-width:0}.em-linha b{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.em-linha small{display:block;font-size:10px;color:var(--cinza);text-transform:uppercase;margin-top:2px}
.em-lista{margin:0 0 12px;padding:0 0 0 18px;font-size:11px;color:var(--texto2);line-height:1.6}
/* ---------- ingressos por e-mail v2 (quadro "Carteira · ingressos por e-mail: telas e alerta") ---------- */
.em-selo{display:block;width:64px;height:64px;border:3px solid var(--chao);box-sizing:border-box;flex:none}
.em-selo.p{width:14px;height:14px;border:0}
.cv-topo.apagado .em-selo{filter:grayscale(1);opacity:.7}
.em-faixas{display:flex;flex-direction:column;gap:12px;padding:16px 16px 0}
.em-faixas .so-canhoto.cv-can{margin:0}
.em-mais{margin:0;font-size:10.5px;color:var(--cinza);letter-spacing:.06em}
.so-canhoto .cpor{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;color:var(--texto2);margin-top:3px;letter-spacing:.02em}
.em-lendo{display:block;width:120px;max-width:100%;height:10px;margin-top:4px;background:repeating-linear-gradient(90deg,var(--areia) 0 12px,var(--chao) 12px 24px);background-size:48px 10px;animation:emLendo 1.2s linear infinite}
@keyframes emLendo{to{background-position:48px 0}}
@media (prefers-reduced-motion:reduce){.em-lendo{animation:none}}
.em-ficha{display:grid;place-items:center;width:52px;height:52px;border:2px solid var(--fita);box-sizing:border-box;background:var(--chao);font-family:var(--mono);font-size:11px;font-weight:600}
.em-arqs{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.em-arq{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;border:2px solid var(--fita);background:var(--chao2);padding:6px 8px}
.em-arq .em-ficha{width:34px;height:34px;font-size:9px}
.em-arq .mono{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.em-lido{border:2px dashed var(--fita);padding:8px 10px;font-size:13px;line-height:1.4}
.em-lido b{display:block}.em-lido small{display:block;font-size:10.5px;color:var(--cinza);margin-top:2px}
.em-end{margin-top:12px;border:2px solid var(--fita);background:var(--chao2);padding:10px 12px;display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center}
.em-end small{font-size:9.5px;color:var(--cinza);text-transform:uppercase;letter-spacing:.08em}
.em-end .btn{height:30px;padding:0 10px;font-size:10.5px}
.em-end b{grid-column:1/3;font-family:var(--display);font-variation-settings:"wdth" 92,"wght" 800;font-size:clamp(14px,4.4vw,17px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.em-passos{margin:12px 0 4px}
.em-sub{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-family:var(--display);font-variation-settings:"wdth" 110,"wght" 700;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding-top:9px;margin-top:12px;border-top:3px double var(--fita)}
.em-sub small{font-family:var(--mono);font-variation-settings:normal;font-weight:500;font-size:10px;color:var(--cinza);text-transform:none;letter-spacing:0;text-align:right}
.em-ic{width:30px;height:30px;flex:none;border-radius:50%;border:2px solid var(--fita);box-sizing:border-box;display:grid;place-items:center;font-style:normal;font-family:var(--display);font-weight:800;font-size:12px}
.em-ic.g{background:var(--fita);color:var(--chao)}.em-ic.esp{border-style:dashed}
.em-linha small.ok{color:var(--copa)}.em-linha small.esp{color:var(--ilha)}
.em-linha small .linkbtn{font-size:inherit;color:var(--ilha);text-transform:uppercase;padding:0}
.em-add{display:flex;gap:8px;margin-top:10px}.em-add input{flex:1;min-width:0}.em-add .btn{flex:none}
/* voltar no modal da peça, quando ela foi aberta de outro modal (Descobrir pelo som, pessoa, prêmio): na foto, do lado
   oposto ao ×, no mesmo tamanho; com o título preso no topo da rolagem, uma seta antes dele */
.mvolta-h{position:absolute;top:10px;left:10px;z-index:1;display:flex;align-items:center;gap:8px;height:40px;max-width:calc(100% - 80px);padding:0 12px 0 10px;box-sizing:border-box;border:2px solid var(--fita);background:var(--fita);color:var(--chao);font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.mvolta-h>span:first-child{font-size:17px;line-height:1;font-family:var(--body,inherit)}
.mvolta-r{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mhero.noimg .mvolta-h{border-color:var(--chao)}
.mvolta-h:hover{background:var(--ilha);border-color:var(--ilha)}
.mtit .mvolta-t{display:none;vertical-align:.12em;width:30px;height:30px;margin-right:8px;border:2px solid var(--fita);background:var(--chao);color:var(--fita);font-size:16px;line-height:1;cursor:pointer;padding:0}
.mtit.preso .mvolta-t{display:inline-grid;place-items:center}
/* Descobrir pelo som sob o cabeçalho de Shows */
.grupo .descobrir{margin:4px 0 14px}
/* ---------- revisão do dev (quadro "Revisão do dev · clareza e coerência") ---------- */
/* 1 · a versão pequena e clara do voltar, para dentro das bandas pretas (no lugar do rótulo) */
.mvolta-h.in{position:static;height:26px;padding:0 9px 0 7px;gap:6px;background:var(--chao);color:var(--fita);border-color:var(--chao);font-size:10px;letter-spacing:.08em}
.mvolta-h.in>span:first-child{font-size:14px}
.mvolta-h.in:hover{background:var(--ilha);border-color:var(--ilha);color:var(--chao)}
.so-hero .mvolta-h{z-index:2}
.desc .mvolta-h{position:static;display:inline-flex;margin-bottom:10px}
/* 2 · notas: mono em caixa alta até uma linha; o resto em texto corrido */
.cv-txt{margin:10px 0 0;font-size:12.5px;line-height:1.45;color:var(--cinza)}
.cv-nota+.cv-txt{margin-top:6px}
/* 4 · o ♡ do acervo com rótulo */
.card .img .want.txt{width:auto;padding:0 8px;gap:6px;font-family:var(--display);font-weight:700;font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.card .img .want.txt svg{width:14px;height:14px;flex:none}
.btn.want.txt{width:auto;padding:0 12px;gap:8px;font-family:var(--display);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
.btn.want.txt svg{width:18px;height:18px}
/* 6 · a entrada do acervo: a fita sem tinta, em cinza */
.descobrir.acv .acv-fita{display:block;width:44px;height:44px;border-radius:0;background:#9a948a;-webkit-mask:var(--fita-c) left center/auto 100% no-repeat;mask:var(--fita-c) left center/auto 100% no-repeat}
/* ---------- a turnê no mapa (acervo) ---------- */
.turne h3{margin-top:4px}
/* mapa noturno (quadro "Acervo · mapa: contraste e navegação", opção A): o letreiro, o mapa e a legenda num bloco preto só;
   terra em pontos claros, cidades claras, anel vermelho */
.tr-mapa{position:relative;border:2px solid var(--fita);background:var(--fita);overflow:hidden;touch-action:pan-y}.tr-mapa.zoom{touch-action:none;cursor:grab}.tr-mapa svg{display:block;width:100%;height:auto;stroke:none;fill:none}   /* o svg global tem stroke:currentColor */
.tr-mapa .terra{fill:rgba(237,230,214,.42)}
.tr-zoom{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:4px}.tr-zoom button{width:30px;height:30px;padding:0;border:2px solid #EDE6D6;background:var(--fita);color:#EDE6D6;font-family:var(--display);font-weight:800;font-size:16px;line-height:1;cursor:pointer;box-sizing:border-box}.tr-zoom button:disabled{opacity:.35;cursor:default}
@media (hover:hover){.tr-zoom button:not(:disabled):hover{background:#EDE6D6;color:var(--fita)}}
.tr-mapa .tp{opacity:0;transform-box:fill-box;transform-origin:center;cursor:pointer;animation:tr-cai .32s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(.5s + var(--i,0) * var(--passo,.085s))}.tr-mapa .tp circle{fill:#EDE6D6}.tr-mapa .tp .alvo{fill:transparent}
.tr-mapa .tn{opacity:0;animation:tr-nome .3s ease-out both;animation-delay:calc(.6s + var(--i,0) * var(--passo,.085s));pointer-events:none}
/* janela de 12 nomes: .sai some quando entra o 12º nome depois dele (--o); no fim, os secundários que ficaram somem (--fim)
   e os principais que tinham saído voltam (--fim + .5s) */
.tr-mapa .tn.sec{animation:tr-nome .3s ease-out both,tr-some .5s ease-in forwards;animation-delay:calc(.6s + var(--i,0) * var(--passo,.085s)),var(--fim,8s)}
.tr-mapa .tn.sai{animation:tr-nome .3s ease-out both,tr-some .22s ease-in forwards,tr-nome .4s ease-out forwards;animation-delay:calc(.6s + var(--i,0) * var(--passo,.085s)),calc(.6s + var(--o,0) * var(--passo,.085s)),calc(var(--fim,8s) + .5s)}
.tr-mapa .tn.sec.sai{animation:tr-nome .3s ease-out both,tr-some .22s ease-in forwards;animation-delay:calc(.6s + var(--i,0) * var(--passo,.085s)),calc(.6s + var(--o,0) * var(--passo,.085s))}
.tr-mapa .tn.on{opacity:1!important;animation:none}svg.pausado .tn.sec:not(.on){opacity:0!important}
@keyframes tr-some{to{opacity:0}}
.tr-mapa .tn text{font-family:var(--mono);font-size:6.2px;letter-spacing:.06em;fill:rgba(237,230,214,.85)}.tr-mapa .tn text.ano{font-family:var(--display);font-weight:800;fill:#EDE6D6}
.tr-mapa .tn .fio{stroke:rgba(237,230,214,.5);stroke-width:.5;fill:none}
@keyframes tr-nome{to{opacity:1}}svg.pausado .tn{opacity:1;animation:none!important}
.temp-chips{margin:-2px 0 10px}.temp-chips .chip:disabled{opacity:.4}
/* a lista rola dentro do modal; o esmaecido no fim diz que há mais */
.temps-rol{max-height:380px;overflow:auto;overscroll-behavior:contain;margin:0 -18px;padding:0 18px 24px;-webkit-mask:linear-gradient(#000 calc(100% - 28px),transparent);mask:linear-gradient(#000 calc(100% - 28px),transparent)}
.temps li[data-act]{cursor:pointer}.temps li.on b{color:var(--ilha)}.temps li.sd b{color:var(--cinza)}
/* o letreiro: placas que viram */
.tr-let{display:flex;gap:18px;align-items:flex-end;background:var(--fita);padding:8px 12px 10px;border:2px solid var(--fita);border-bottom:0}
.tr-lg small{display:block;font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:#B9B2A4;text-transform:uppercase;margin-bottom:5px}
.tr-fl{display:flex;gap:3px}
.tr-tile{position:relative;display:block;width:20px;height:28px;background:#2b2825;border-radius:2px;perspective:140px;font-family:var(--display);font-weight:800;font-size:19px;color:var(--chao);font-style:normal}
.tr-tile b{position:absolute;left:0;right:0;height:14px;overflow:hidden;background:#2b2825;font-weight:inherit;backface-visibility:hidden}.tr-tile b u{display:block;text-decoration:none;line-height:28px;text-align:center}
.tr-tile .a,.tr-tile .fa{top:0;border-radius:2px 2px 0 0;border-bottom:1px solid rgba(237,230,214,.3)}.tr-tile .b,.tr-tile .fb{bottom:0;border-radius:0 0 2px 2px}.tr-tile .b u,.tr-tile .fb u{margin-top:-14px}
.tr-tile .fa{z-index:2;transform-origin:bottom;animation:tr-fa linear forwards}.tr-tile .fb{z-index:3;transform-origin:top;transform:rotateX(90deg);animation:tr-fb linear forwards}
@keyframes tr-fa{to{transform:rotateX(-90deg)}}@keyframes tr-fb{to{transform:rotateX(0)}}
.tr-mapa .tp.on circle:not(.alvo){fill:var(--ilha)}
.tr-mapa .tp.sd{opacity:1;animation:none}.tr-mapa .tp.sd circle{fill:none;stroke:#EDE6D6;stroke-width:1.2;stroke-dasharray:2 1.5}
.tr-mapa .anel{fill:none;stroke:var(--ilha);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
svg.pausado .tp{opacity:1;animation:none!important}svg.pausado .anel{opacity:1}
.tr-mapa svg.espera .tp,.tr-mapa svg.espera .tn{animation-play-state:paused}
@keyframes tr-cai{from{transform:translateY(calc(-1 * var(--queda,14px)));opacity:0}to{transform:none;opacity:1}}@keyframes tr-anel-pousa{from{transform:translateY(-14px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.tr-mapa .tp{opacity:1;animation:none}.tr-mapa .anel{opacity:1}}
.tr-regua{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:10px;color:var(--cinza)}.tr-regua i{flex:1;height:0;border-top:1px solid var(--fita)}.tr-rep{margin-left:auto;font-family:var(--display);font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em}
.tr-leg{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;padding:8px 12px 10px;background:var(--fita);border:2px solid var(--fita);border-top:0;font-size:8.5px;color:#B9B2A4;letter-spacing:.06em}.tr-leg span{display:flex;align-items:center;gap:5px}
.l-pt{width:7px;height:7px;border-radius:50%;background:#EDE6D6}.l-sd{width:7px;height:7px;border-radius:50%;border:1.2px dashed #EDE6D6;box-sizing:border-box}.l-an{width:10px;height:10px;border-radius:50%;border:2px solid var(--ilha);box-sizing:border-box}
.tr-card{margin-top:10px;border:2px solid var(--fita);background:var(--chao);box-shadow:4px 4px 0 var(--fita);display:grid;grid-template-columns:1fr;gap:10px;padding:10px 12px;touch-action:pan-y;user-select:none}
@media (min-width:761px){.tr-card{grid-template-columns:auto 1fr auto;align-items:center}.tr-card .tr-cn.ant{order:-1}}
@media (max-width:760px){.tr-card .tr-cn{display:none}}
.tr-cc b{display:block;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:16px;text-transform:uppercase}.tr-cc small{display:block;font-size:9.5px;color:var(--cinza);margin-top:3px;letter-spacing:.06em}.tr-cc span{display:block;font-size:12.5px;line-height:1.4;color:var(--texto2);margin-top:6px}
.tr-card .tr-cn{width:32px;height:32px;padding:0;justify-content:center;font-size:16px}
/* os rostos no QR (quadro "Carteira · QR: de quem é este ingresso") */
.ingvisor.qr .iv-qr{position:relative}.iv-rostos{position:absolute;left:14px;top:14px;display:flex;align-items:center;gap:6px;z-index:2}
.iv-rostos .seixo{width:30px;height:30px;font-size:11px;border-width:2px;transition:width .2s,height .2s,opacity .2s,filter .2s}
.iv-rostos .seixo.vez{width:52px;height:52px;font-size:17px;border-color:var(--fita)}
.iv-rostos .seixo.fora{filter:grayscale(1);opacity:.4}

/* agenda: com QR guardado, o botão verde vira a própria imagem do QR (a mesma da carteira); a contagem continua no canto */
.ag .tk .cqr{display:none}
.ag .tk.comqr{background:#fff;border-color:var(--fita);color:var(--fita)}
.ag .tk.comqr>svg{display:none}
.ag .tk.comqr .cqr{display:block;width:100%;height:100%;box-sizing:border-box;padding:1px}.ag .tk.comqr .cqr svg{display:block;width:100%;height:100%}
@media (min-width:761px){.ag .tk.comqr{padding:0 12px 0 3px}.ag .tk.comqr .cqr{width:28px;height:28px;padding:0}}
/* voo (quadro "Você · voo"): a miniatura do cartaz que sai do ♡ ou do + e pousa na aba Você; a aba pula ao receber */
.voo{position:fixed;z-index:120;width:44px;height:58px;border:2px solid var(--fita);box-sizing:border-box;background:var(--areia) center top/cover no-repeat;pointer-events:none;box-shadow:0 6px 14px rgba(30,28,26,.28);will-change:transform}
@keyframes pousa-aba{0%{transform:scale(1)}35%{transform:scale(1.16)}100%{transform:scale(1)}}
.bn.pousou,.tab.pousou{animation:pousa-aba .42s cubic-bezier(.3,0,.2,1)}
.bn.pousou .bnn,.tab.pousou .tabn{animation:pousa-aba .42s cubic-bezier(.3,0,.2,1) .05s}
.bottomnav.recebe,header.top.recebe{z-index:110}

/* visualizador de fotos do acervo */
.acv-fotos figure{cursor:zoom-in}
.fvisor{position:fixed;inset:0;z-index:90;background:rgba(10,9,8,.94);display:grid;grid-template-columns:56px 1fr 56px;grid-template-rows:1fr auto;align-items:center;color:#EDE6D6}
.fvisor[hidden]{display:none}
.fv-quadro{grid-column:2;grid-row:1;display:grid;place-items:center;height:100%;touch-action:none;user-select:none;overflow:hidden;cursor:zoom-in}.fv-quadro.zoom{cursor:grab}.fv-quadro img.anim{transition:transform .22s cubic-bezier(.22,.61,.36,1)}.fv-quadro img{transform-origin:50% 50%;will-change:transform}
.fv-quadro img{max-width:100%;max-height:calc(100vh - 130px);max-height:calc(100dvh - 130px);object-fit:contain;border:2px solid #EDE6D6;box-sizing:border-box;background:#1E1C1A}
.fv-seta{grid-row:1;width:44px;height:64px;border:2px solid #EDE6D6;background:transparent;color:#EDE6D6;font-size:30px;line-height:1;cursor:pointer;justify-self:center;padding:0}.fv-seta.ant{grid-column:1}.fv-seta.prox{grid-column:3}.fv-seta[hidden]{display:none}
.fv-x{position:absolute;right:12px;top:max(12px,env(safe-area-inset-top));width:40px;height:40px;border:2px solid #EDE6D6;background:transparent;color:#EDE6D6;font-size:22px;cursor:pointer;padding:0}
.fv-pe{grid-column:1/-1;grid-row:2;display:flex;gap:14px;align-items:baseline;justify-content:center;flex-wrap:wrap;padding:12px 16px max(14px,env(safe-area-inset-bottom));font-size:12.5px;text-align:center}.fv-pe .mono{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;opacity:.75}.fv-pe a{color:#EDE6D6;opacity:1}
@media (max-width:560px){.fvisor{grid-template-columns:44px 1fr 44px}.fv-seta{width:34px;height:56px;font-size:26px}}
body.fv-aberto{overflow:hidden}

/* editor do acervo: quais fotos aparecem */
.ea-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px}
.ea-th{position:relative;padding:0;border:2px solid var(--fita);background:var(--chao);cursor:pointer;aspect-ratio:1;overflow:hidden}
.ea-th img{display:block;width:100%;height:100%;object-fit:cover}
.ea-th i{position:absolute;left:0;right:0;bottom:0;font:600 9px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;background:var(--copa);color:#EDE6D6;padding:4px;font-style:normal;text-align:center}
.ea-th.off img{filter:grayscale(1);opacity:.35}.ea-th.off i{background:var(--cinza)}

/* temporadas: a parada que ainda não aconteceu (quadro "Acervo · temporadas: o que ainda vem", opção B) */
.temps li.fut::after{border-color:var(--ilha);background:var(--chao)}
.temps li.fut::before{background:repeating-linear-gradient(180deg,var(--fita) 0 4px,transparent 4px 8px)}
.temps li.fut small{color:var(--ilha)}
.temps li.agora::after{background:var(--ilha);border-color:var(--ilha)}
.tr-mapa .tp.fut circle:not(.alvo){fill:var(--fita);stroke:#EDE6D6;stroke-width:1.2}

/* "Descobrir pelo som", desenho B (quadro "Em cartaz · descobrir pelo som: três desenhos") */
.descobrir.som{grid-template-columns:70px 1fr auto;background:var(--chao2);color:var(--fita);border:2px solid var(--fita);padding:8px 14px 8px 10px}
.descobrir.som .violao{display:block;width:70px;height:52px}
.descobrir.som small{opacity:1;color:var(--cinza)}
.descobrir.som .seta{width:auto;height:auto;border-radius:0;background:none;padding:0;font-size:28px;line-height:1;color:var(--fita)}
.descobrir.som:hover .seta{transform:none}.descobrir.som:hover{background:var(--chao)}
/* o ♡ do Descobrir pelo som do tamanho do ♡ das peças */
.desc-acoes .btn.want{padding:0}.desc-acoes .btn.want svg{width:22px;height:22px}   /* o padding de 16 px do botão de texto espremia o ♡ a 8 px */

/* Descobrir pelo som, opção C (quadro "o player"): o modal escuro, a foto do show ao fundo sob o véu, tudo em claro por cima */
#modal:has(.desc.escuro){background:var(--fita)}
.mbody.desc.escuro{background:var(--fita);color:#EDE6D6;position:relative;overflow:hidden;min-height:100%;padding-bottom:24px}
.desc-fundo{position:absolute;left:0;right:0;top:0;height:420px;background:center 30%/cover no-repeat;background-color:#2a2420}
.desc-fundo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,16,.18),rgba(20,18,16,.72) 50%,#1E1C1A 100%)}
.desc.escuro>*:not(.desc-fundo):not(.mclose):not(.mvolta-h){position:relative}   /* o × e o voltar continuam absolutos, nos cantos */
.desc.escuro .mclose,.desc.escuro .mvolta-h{z-index:2}
.desc.escuro .desc-h .rotulo{color:#EDE6D6}.desc.escuro .desc-h small{color:#B9B2A4}
.desc.escuro .desc-card{margin-top:150px}
.desc.escuro .desc-tit{color:#EDE6D6;font-size:22px}.desc.escuro .desc-q{color:#EDE6D6}.desc.escuro .desc-txt{color:#B9B2A4;font-size:13.5px}.desc.escuro .desc-art{color:#B9B2A4}
.desc.escuro .btn{border-color:#EDE6D6;color:#EDE6D6;background:transparent}.desc.escuro .btn.primary{background:#EDE6D6;color:var(--fita)}.desc.escuro .btn.want.on{background:var(--ilha);border-color:var(--ilha);color:#EDE6D6}
.desc.escuro .mclose{border-color:#EDE6D6}.desc.escuro .mvolta-h{border:2px solid #EDE6D6}
.desc.escuro .desc-nota{color:#B9B2A4}.desc.escuro .desc-carrega{color:#B9B2A4}
@media (min-width:761px){.desc.escuro .desc-card{margin-top:120px}}

/* janela de datas (quadro "Em cartaz · janela de datas"): o botão Datas na barra e a folha com o calendário */
.day.jan.datas{flex:0 0 auto;white-space:nowrap}.day.jan.datas b{font-size:9.5px}.day.jan.datas.active{background:var(--ilha);border-color:var(--ilha);color:var(--chao)}
.folha-datas{z-index:61;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;padding-top:0;padding-bottom:0}
.dt-topo{position:sticky;top:0;z-index:2;background:var(--chao);padding-top:16px}
.dt-atalhos{margin:10px 0 8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.dt-atalhos::-webkit-scrollbar{display:none}.dt-atalhos .chip{flex:none;height:28px;padding:0 8px;font-size:10px}
.cal-h{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;height:28px}
.cal-h .dt-nav{display:flex;gap:4px}.dt-nav .btn{width:28px;height:28px;padding:0;font-size:16px}
.dow{display:grid;grid-template-columns:repeat(7,1fr);font-family:var(--mono);font-size:9px;color:var(--cinza);text-align:center;margin-bottom:2px}.dow em{font-style:normal}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-grid button,.cal-grid i{display:flex;align-items:center;justify-content:center;height:36px;margin:0;border:0;border-radius:0;background:none;font-family:var(--mono);font-size:13px;font-weight:500;line-height:1;color:var(--fita);padding:0;cursor:pointer;text-decoration:none}
.cal-grid button.cd-passado{color:#B9B2A4;cursor:default}
.cal-grid button.cd-hoje{text-decoration:underline;text-decoration-color:var(--ilha);text-underline-offset:3px}
.cal-grid button.cd-dentro{background:var(--fita);color:var(--chao);text-decoration:none}
.cal-grid button.cd-ponta{background:var(--ilha);color:var(--chao)}
.dt-pe{position:sticky;bottom:0;display:flex;align-items:center;gap:14px;margin-top:8px;padding:10px 0 14px;background:var(--chao);border-top:1px solid var(--fita)}.dt-pe .de{display:flex;flex-direction:column;gap:2px}.dt-pe small{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--cinza);text-transform:uppercase}.dt-pe b{font-size:13px}.dt-pe .btn{margin-left:auto}
@media (min-width:761px){.folha-datas{width:min(520px,calc(100% - 48px))}.cal-grid button,.cal-grid i{height:40px}}

/* turnê, versão jardim (escolhida em 27/10): folha clara, terra em massa, linha sinuosa, discos pretos, nomes em Archivo */
.tr-mapa.v1{background:var(--chao2)}.tr-mapa.v1 .terra{fill:#CDBF9F}
.tr-mapa.v1 .rota{fill:none;stroke:var(--fita);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:tr-rota var(--fim,8s) linear .5s forwards}
@keyframes tr-rota{to{stroke-dashoffset:0}}svg.pausado .rota{stroke-dashoffset:0;animation:none}.tr-mapa.v1 svg.espera .rota{animation-play-state:paused}
.tr-mapa.v1 .tp circle:not(.alvo){fill:var(--fita);stroke:var(--chao2);stroke-width:1.2}.tr-mapa.v1 .tp.on circle:not(.alvo){fill:var(--ilha)}
.tr-mapa.v1 .tp.fut circle:not(.alvo){fill:var(--chao2);stroke:var(--fita)}.tr-mapa.v1 .tp.sd circle{stroke:var(--fita)}
.tr-mapa.v1 .tn text{font-family:var(--display);font-weight:800;font-variation-settings:'wdth' 112,'wght' 800;font-size:7.4px;letter-spacing:.03em;fill:var(--fita)}.tr-mapa.v1 .tn text.ano{fill:var(--cinza);font-family:var(--mono);font-weight:500}
.tr-mapa.v1 .tn .fio{stroke:rgba(30,28,26,.45)}
.tr-mapa.v1 .anel{fill:var(--ilha);stroke:var(--chao2);stroke-width:1.5}
.tr-mapa.v1 .tr-zoom button{background:var(--chao2);color:var(--fita);border-color:var(--fita)}@media (hover:hover){.tr-mapa.v1 .tr-zoom button:not(:disabled):hover{background:var(--fita);color:var(--chao2)}}
/* Já vi: a temporada num campo com busca (quadro "Diário · Já vi: qual temporada") */
.so-temp .combo-in{height:44px}.so-temp .combo-pop{max-height:260px}
.so-temp .combo-opt{display:block;width:100%;text-align:left;background:var(--chao);border:0;border-bottom:1px solid var(--linha);padding:8px 10px;font:inherit;color:var(--fita);cursor:pointer}
.so-temp .combo-opt b{display:block;font-family:var(--display);font-weight:700;font-variation-settings:'wdth' 110,'wght' 700;font-size:14px;line-height:1.1}.so-temp .combo-opt small{display:block;font-size:9.5px;letter-spacing:.06em;color:var(--cinza);margin-top:3px}
.so-temp .combo-opt.on{background:var(--fita);color:var(--chao)}.so-temp .combo-opt.on small{color:#B9B2A4}
.so-temp+#viDias{margin-top:8px}

/* editor da peça: o @ do Instagram */
.ed-ig{display:flex;align-items:stretch}.ed-ig span{display:flex;align-items:center;padding:0 10px;border:2px solid var(--fita);border-right:0;background:var(--fita);color:var(--chao);font-family:var(--mono);font-size:14px}.ed-ig input{flex:1;min-width:0}

/* ---------- seguir e amigos (quadro "Social · seguir e amigos: redesenho") ---------- */
/* botão de quatro estados: Seguir e Seguir de volta cheios; Seguindo invertido; Amigos ✓ em copa */
.btn.so-seg.amigos,.so-acoes .btn.so-seg.amigos,.so-pessoa .btn.so-seg.amigos{background:var(--copa);border-color:var(--copa);color:var(--chao)}
.vbloco.esc .btn.so-seg.amigos{background:var(--copa);border-color:var(--copa);color:var(--chao)}
.so-acoes .so-seg-perfil{flex:1}
.so-segue-voce{font-family:var(--mono);font-size:9px;letter-spacing:.08em;border:1px solid var(--cinza);padding:1px 5px;margin-left:4px;vertical-align:1px}
.so-sp{display:flex;align-items:center;gap:8px;margin:2px 0 6px;font-size:12.5px;color:var(--texto2);line-height:1.3}.so-sp .pilha .seixo{border-color:var(--chao)}.so-sp b{font-weight:600;color:var(--fita)}
.so-pmenu .btn{flex-direction:column;align-items:flex-start;height:auto;padding:9px 12px;gap:1px;text-align:left}
.so-pmenu .btn small{font-family:var(--sans);font-weight:400;font-size:11.5px;letter-spacing:0;text-transform:none;color:var(--cinza)}
.so-pmenu .btn.perigo{color:var(--ilha);border-color:var(--ilha)}
/* quatro peças da vida */
.so-favs-h{margin-top:14px}
.so-favs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:6px 0 4px}
.so-fav{position:relative;display:block;border:0;background:none;padding:0;text-align:left;font:inherit;cursor:pointer;min-width:0}
.so-fav .fcapa{display:block;width:100%;aspect-ratio:2/3;border:2px solid var(--fita);background:var(--linha) center top/cover no-repeat;box-sizing:border-box}
.so-fav small{display:block;font-size:10.5px;line-height:1.25;margin-top:4px;color:var(--texto2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.so-fav.vazio .fcapa{border-style:dashed;background:repeating-linear-gradient(-45deg,var(--chao2) 0 4px,transparent 4px 10px)}.so-fav.vazio small{font-family:var(--mono);color:var(--cinza);text-align:center}
.so-fav-x{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:2px solid var(--fita);background:var(--chao);color:var(--fita);font:700 14px/1 var(--display);cursor:pointer;padding:0}
.so-favs.ed{margin-bottom:8px}
/* "Sua gente" na peça: bloco escuro (escuro é gente), médias lado a lado, histograma, linhas */
.so-gp{background:var(--fita);color:var(--chao);margin:12px -18px 0;padding:12px 18px 14px}
.sgp-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sgp-h b{font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:16px;text-transform:uppercase;letter-spacing:-.01em}
.sgp-h .pilha .seixo{border-color:var(--fita);box-shadow:0 0 0 1.5px var(--chao)}
.sgp-media{display:grid;grid-template-columns:auto auto 1fr;gap:16px;align-items:end;margin:10px 0 6px;padding-bottom:10px;border-bottom:1px solid rgba(237,230,214,.25)}
.sgp-media b{display:block;font-family:var(--display);font-weight:800;font-variation-settings:var(--wide);font-size:30px;line-height:1;color:var(--chao)}.sgp-media b.cz{color:var(--chao);opacity:.55}
.sgp-media small{display:block;font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;opacity:.7;margin-top:4px;white-space:nowrap}
.sgp-hist{display:flex;align-items:flex-end;gap:2px;height:30px;justify-self:end;align-self:end}.sgp-hist i{width:7px;background:rgba(237,230,214,.35);display:block}.sgp-hist i.on{background:var(--ilha)}
.sgp-ls{display:flex;flex-direction:column}
.sgp-l{display:flex;align-items:center;gap:8px;padding:6px 0;border:0;border-bottom:1px solid rgba(237,230,214,.14);background:none;color:var(--chao);font:inherit;text-align:left;cursor:pointer;width:100%}
.sgp-l:last-child{border-bottom:0}.sgp-l b{font-size:13.5px;min-width:58px}.sgp-l small.mono{font-size:10px;opacity:.7;margin-left:auto}
.sgp-l .tp{font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;padding:2px 6px;border:1px solid rgba(237,230,214,.5)}
.sgp-l .tp.vou{background:var(--ilha);border-color:var(--ilha)}.sgp-l .tp.quer{color:var(--sodio);border-color:var(--sodio)}
.sgp-l .ilhas{margin-left:auto}
.sgp-mais{display:block;margin-top:8px;border:0;background:none;padding:0;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--sodio);cursor:pointer}
.sgp-mais-n{display:block;font-size:9.5px;opacity:.6;margin-top:4px;letter-spacing:.08em}
/* Gente */
.so-k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--cinza);margin:10px 0 4px}.so-k small{letter-spacing:.04em;text-transform:none}
.so-gente .so-k{margin:18px 0 4px}
.so-vertodos{margin:6px 0 0;font-size:12.5px}
.so-cards{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -18px;padding:4px 18px 6px;scrollbar-width:none}.so-cards::-webkit-scrollbar{display:none}
.so-card{position:relative;flex:none;width:136px;scroll-snap-align:start;border:2px solid var(--fita);background:var(--chao2);padding:14px 8px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;box-sizing:border-box}
.so-card .seixo.g{width:52px;height:52px;font-size:16px}
.so-card .txt{border:0;background:none;padding:0;font:inherit;cursor:pointer;min-width:0;width:100%}.so-card .txt b{display:block;font-size:13px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.so-card .txt small{display:block;font-size:10.5px;line-height:1.3;color:var(--cinza);margin-top:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.6em}
.so-card .btn{height:30px;font-size:10px;width:100%;margin-top:auto}
.so-card-x{position:absolute;top:2px;right:2px;width:24px;height:24px;border:0;background:none;color:var(--cinza);font:700 16px/1 var(--display);cursor:pointer;padding:0}
.so-conv{display:flex;gap:12px;align-items:flex-start;border:2px dashed var(--fita);padding:10px;margin-top:6px}
.so-conv-qr{flex:none;width:84px;height:84px;border:2px solid var(--fita);background:var(--chao2);box-sizing:border-box}.so-conv-qr .qrsvg{width:100%;height:100%;display:block}
.so-conv-t{min-width:0;flex:1}.so-conv-t b{display:block;font-family:var(--display);font-weight:700;font-variation-settings:var(--mid);font-size:14px;text-transform:uppercase}.so-conv-t small{display:block;font-size:12px;line-height:1.4;color:var(--texto2);margin:3px 0 8px}
.so-conv-bts{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.so-conv-bts .btn{height:34px}.so-conv-bts .linkbtn{font-size:12.5px}
.so-gente-abas{margin-top:18px;margin-bottom:4px}
.so-cva{display:flex;gap:12px;align-items:center;margin-top:14px}.so-cva p{margin:0;font-size:14px;line-height:1.45}
@media (min-width:761px){.so-card{width:150px}}
/* na peça, "Sua gente" emenda no bloco escuro do topo: um bloco só, com um fio entre as ações e a gente */
.app-bloco.topo+.so-gp-wrap .so-gp{margin-top:0;padding-top:12px;border-top:1px solid rgba(237,230,214,.25)}
.app-bloco.topo:has(+.so-gp-wrap .so-gp){padding-bottom:12px}

/* ---------- histórico (quadro "Histórico · pessoa e peça fora de cartaz"): linha de prêmios, selo no azulejo, pessoa ---------- */
.pill.prem.resumo{text-transform:none;letter-spacing:.02em;font-size:11px;max-width:100%;white-space:normal;text-align:left;line-height:1.2;padding:4px 9px}
.painel .az b em.pz{display:block;font-style:normal;font-family:var(--mono);font-weight:600;font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ouro-linha);margin-top:2px}
.painel .az.fita b em.pz,.painel .az.ilha b em.pz,.painel .az.copa b em.pz{color:var(--ouro)}
.painel .az b em.pz.win{color:var(--fita);background:var(--ouro);padding:0 3px;display:inline-block;margin-top:3px}
.pz .pz-sub{color:var(--cinza);font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-top:4px}.pz .pz-sub a{text-transform:none;letter-spacing:0}
.pz .so-acoes{margin:10px 0 4px}
.pz-favs{margin:8px 0 4px}.pz-favs .so-fav small.mono{font-size:9px;color:var(--cinza);letter-spacing:.04em;margin-top:2px;-webkit-line-clamp:1}
.pz-chips{margin:6px 0 4px}.pz-chips .chip small{font-family:var(--mono);font-size:10px;opacity:.7;margin-left:3px}
.pz-lista{margin-bottom:6px}
.pz-tr{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--linha);cursor:pointer}
.pz-tr:hover b{color:var(--ilha)}
.pz-tr .ano{width:38px;flex:none;font-size:12px;color:var(--cinza)}
.pz-tr .tx{flex:1;min-width:0}.pz-tr .tx b{display:block;font-size:14.5px;line-height:1.2}.pz-tr .tx small{display:block;font-size:10px;color:var(--cinza);letter-spacing:.04em;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pz-tr.cartaz .tx small{color:var(--copa)}
.pz-selo{flex:none;font-size:9px;padding:2px 6px;height:auto}

/* ---------- cartões para o Instagram (quadro "Social · compartilhar no Instagram") ---------- */
.so-cart-ths{display:flex;gap:6px;margin:4px 0 8px}
.so-cart-th{flex:1;border:2px solid transparent;background:none;padding:3px;cursor:pointer;font:inherit;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}
.so-cart-th.on{border-color:var(--fita);background:var(--chao2)}
.so-cart-th canvas{width:54px;height:96px;border:1.5px solid var(--linha);background:var(--fita)}
.so-cart-th small{font-family:var(--mono);font-size:8px;letter-spacing:.04em;color:var(--cinza);text-transform:uppercase;text-align:center;line-height:1.2}
.so-cart-fmt{margin:0 0 8px}
.so-cart-prev{display:flex;justify-content:center;margin:0 0 8px}
.so-cart-prev canvas{height:min(260px,34vh);width:auto;max-width:100%;border:2px solid var(--fita);background:var(--fita)}
.so-cart-frases{margin:4px 0 6px}.so-cart-frases .chip{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:12px}
.so-cart-nota{margin-top:8px}.so-cart-nota .linkbtn{font-size:inherit;padding:0}
.so-dia-st{border:0;background:none;padding:4px;cursor:pointer;color:var(--cinza);line-height:0}.so-dia-st svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.so-dia-st:hover{color:var(--ilha)}
.so-dia{grid-template-columns:40px 34px 1fr auto auto}
.folha-st{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--linha)}.folha-st .mono{font-size:10px;letter-spacing:.1em;color:var(--cinza)}.folha-st .btn{height:34px}
.ag-st{position:absolute;right:44px;bottom:8px;border:0;background:none;padding:4px;cursor:pointer;color:var(--cinza);line-height:0}.ag-st svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.ag-st:hover{color:var(--ilha)}
