/* =========================================================
   AfroLapa – Festival da Congada · Landing page
   ========================================================= */

@font-face { font-family: 'Cultures Carnival'; src: url(../fonts/culturescarnival.woff2) format('woff2'); font-display: swap; }
@font-face { font-family: 'Helony'; src: url(../fonts/Helony.woff2) format('woff2'); font-display: swap; }

:root {
  --preto: #050505;
  --preto-2: #171313;
  --creme: #f4ecc9;
  --vermelho: #c62222;
  --laranja: #f59f00;
  --amarelo: #f9c142;
  --verde: #00a893;
  --verde-claro: #56d6ad;
  --azul: #324abe;
  --azul-claro: #4c68e6;
  --roxo: #8d1ac2;
  --roxo-claro: #8c4fd3;
  --marrom: #853512;

  --ink-vermelho: var(--creme);
  --ink-laranja: var(--preto);
  --ink-amarelo: var(--preto);
  --ink-verde: var(--preto);
  --ink-azul: var(--creme);
  --ink-azul-claro: var(--creme);
  --ink-roxo: var(--creme);
  --ink-roxo-claro: var(--creme);
  --ink-creme: var(--preto);

  --f-display: 'Cultures Carnival', Impact, 'Arial Black', sans-serif;
  --f-text: 'Helony', ui-sans-serif, system-ui, sans-serif;

  --gutter: clamp(16px, 4vw, 56px);
  --maxw: 1360px;
  --hd-h: 78px;
  --hd-offset: var(--hd-h);
  --daynav-h: 96px;
  --ease: cubic-bezier(.2, .8, .2, 1);
  --line: rgba(244, 236, 201, .14);
  --muted: rgba(244, 236, 201, .74);

  /* faixas que atravessam a tela: recorte só em cima e embaixo */
  --torn:
    url(../svg/torn-top.svg) var(--tx, 0px) 0 / 1200px var(--e, 24px) repeat-x,
    url(../svg/torn-bottom.svg) var(--bx, 0px) 100% / 1200px var(--e, 24px) repeat-x,
    linear-gradient(#000 0 0) center / 100% calc(100% - 2 * var(--e, 24px) + 2px) no-repeat;
}
html.hd-hidden { --hd-offset: 0px; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: auto; overflow-x: clip; }
main, .ft { overflow-x: clip; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
body {
  margin: 0;
  background: var(--preto);
  color: var(--creme);
  font-family: var(--f-text);
  font-size: clamp(16px, .45vw + 13px, 19px);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }
strong { font-weight: inherit; color: var(--amarelo); }
h1, h2, h3, h4 { font-weight: normal; }
::selection { background: var(--laranja); color: var(--preto); }
:focus-visible { outline: 3px solid var(--amarelo); outline-offset: 3px; }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 100; background: var(--creme); color: var(--preto); padding: 10px 16px; transition: top .2s; }
.skip:focus { top: 12px; }
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.ord { font-family: var(--f-text); font-size: .62em; vertical-align: .55em; margin-left: .02em; }
.c-laranja { color: var(--laranja); } .c-verde { color: var(--verde); } .c-vermelho { color: var(--vermelho); }

/* grão de impressão animado */
.grain {
  position: fixed; top: -100%; left: -100%; width: 300%; height: 300%; z-index: 90; pointer-events: none; opacity: .09;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.5 -.25'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  will-change: transform; animation: grain .8s steps(1) infinite;
}
@keyframes grain {
  0% { transform: translate(0, 0); }
  12% { transform: translate(-4%, -7%); }
  25% { transform: translate(-11%, 3%); }
  37% { transform: translate(6%, -11%); }
  50% { transform: translate(-2%, 9%); }
  62% { transform: translate(10%, 2%); }
  75% { transform: translate(-8%, -3%); }
  87% { transform: translate(3%, 6%); }
}

/* papel rasgado */
.torn { -webkit-mask: var(--torn); mask: var(--torn); }

/* caixas "rough cut" (mesmo estilo do menu): forma única esticada, cantos chanfrados e poucas quebras grandes */
:is(.ev__band, .coroa__list a, .place, .tip, .ft__paper)::before {
  -webkit-mask: url(../svg/card-1.svg) center / 100% 100% no-repeat !important; mask: url(../svg/card-1.svg) center / 100% 100% no-repeat !important;
}
.ev__band::before { -webkit-mask-image: url(../svg/band-1.svg) !important; mask-image: url(../svg/band-1.svg) !important; }
.ev__band.sh-band-2::before { -webkit-mask-image: url(../svg/band-2.svg) !important; mask-image: url(../svg/band-2.svg) !important; }
.ev__band.sh-band-3::before { -webkit-mask-image: url(../svg/band-3.svg) !important; mask-image: url(../svg/band-3.svg) !important; }
.ev__band.sh-band-4::before { -webkit-mask-image: url(../svg/band-4.svg) !important; mask-image: url(../svg/band-4.svg) !important; }
.ev__band.sh-band-5::before { -webkit-mask-image: url(../svg/band-5.svg) !important; mask-image: url(../svg/band-5.svg) !important; }
.coroa__list li:nth-child(5n + 2) a::before, .places > :nth-child(5n + 2)::before, .tips > :nth-child(5n + 2)::before { -webkit-mask-image: url(../svg/card-2.svg) !important; mask-image: url(../svg/card-2.svg) !important; }
.coroa__list li:nth-child(5n + 3) a::before, .places > :nth-child(5n + 3)::before, .tips > :nth-child(5n + 3)::before { -webkit-mask-image: url(../svg/card-3.svg) !important; mask-image: url(../svg/card-3.svg) !important; }
.coroa__list li:nth-child(5n + 4) a::before, .places > :nth-child(5n + 4)::before, .tips > :nth-child(5n + 4)::before { -webkit-mask-image: url(../svg/card-4.svg) !important; mask-image: url(../svg/card-4.svg) !important; }
.coroa__list li:nth-child(5n) a::before, .places > :nth-child(5n)::before, .tips > :nth-child(5n)::before { -webkit-mask-image: url(../svg/card-5.svg) !important; mask-image: url(../svg/card-5.svg) !important; }
.ft__paper::before { -webkit-mask-image: url(../svg/paper-1.svg) !important; mask-image: url(../svg/paper-1.svg) !important; }

/* recorte "rough cut" para pílulas, botões e caixinhas */
:is(.hd__nav, .hd__ig, .chip, .day__count, .day__today, .ev__guests li > a, .ev__guests li > span, .ev__artists a, .ev__cal, .ev__ig, .show__meta div, .show__ig, .toast) {
  position: relative; isolation: isolate; border: 0; border-radius: 0; background: none;
}
:is(.hd__nav, .hd__ig, .chip, .day__count, .day__today, .ev__guests li > a, .ev__guests li > span, .ev__artists a, .ev__cal, .ev__ig, .show__meta div, .show__ig, .toast)::before {
  content: ''; position: absolute; inset: 0; z-index: -1; background: var(--cut-bg, var(--creme));
  -webkit-mask: url(../svg/cut-1.svg) center / 100% 100% no-repeat; mask: url(../svg/cut-1.svg) center / 100% 100% no-repeat;
  transition: background .3s, transform .45s var(--ease);
}
:is(.chip, .show__meta div):nth-child(3n + 2)::before,
:is(.ev__guests li, .ev__artists li):nth-child(3n + 2) > *::before { -webkit-mask-image: url(../svg/cut-2.svg); mask-image: url(../svg/cut-2.svg); }
:is(.chip, .show__meta div):nth-child(3n)::before,
:is(.ev__guests li, .ev__artists li):nth-child(3n) > *::before { -webkit-mask-image: url(../svg/cut-3.svg); mask-image: url(../svg/cut-3.svg); }
/* formas "blob" para botões quadrados */
:is(.hd__burger, .day__chev, .ft__top) { position: relative; isolation: isolate; border: 0; border-radius: 0; background: none; }
:is(.hd__burger, .day__chev, .ft__top)::before {
  content: ''; position: absolute; inset: 0; z-index: -1; background: var(--cut-bg, var(--creme));
  -webkit-mask: url(../svg/blob-vermelho.svg) center / contain no-repeat; mask: url(../svg/blob-vermelho.svg) center / contain no-repeat;
  transition: background .3s;
}

/* tipografia base */
.kicker {
  display: inline-flex; align-items: center; gap: 12px; margin: 0;
  font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; color: var(--amarelo);
}
.kicker::before, .kicker::after { content: ''; width: 30px; height: 2px; background: currentColor; flex: none; }
.h-display {
  font-family: var(--f-display); font-size: clamp(2.6rem, 11.4vw, 9.2rem);
  line-height: .96; margin: 10px 0 18px; color: var(--creme);
}
.h-display .ch { display: inline-block; padding-top: .14em; margin-top: -.14em; }
.h-display .wd, .igcta__handle .wd { white-space: nowrap; }
.sec-head { max-width: 980px; }
.sec-head--center { text-align: center; margin-inline: auto; }
.sec-head--center .kicker { justify-content: center; }
.sec-lead { font-size: clamp(1.05rem, .5vw + .9rem, 1.3rem); max-width: 52ch; margin: 0; color: var(--muted); }
.sec-quote { font-family: var(--f-display); font-size: clamp(1.5rem, 3vw, 2.8rem); line-height: 1; color: var(--amarelo); margin: 0 auto; max-width: 24ch; text-wrap: balance; }

/* botões */
.btn {
  --bg: var(--creme); --fg: var(--preto);
  position: relative; display: inline-flex; align-items: center; gap: 12px;
  padding: 18px 28px 16px; line-height: 1;
  font-family: var(--f-display); font-size: clamp(1.05rem, .6vw + .9rem, 1.35rem);
  color: var(--fg); isolation: isolate; cursor: pointer; border: 0; background: none;
  transition: transform .45s var(--ease), color .3s;
}
.btn svg { width: 22px; height: 22px; flex: none; transition: transform .45s var(--ease); }
.btn--tag::before {
  content: ''; position: absolute; inset: 0; z-index: -1; background: var(--bg);
  -webkit-mask: url(../svg/tag-creme.svg) center / 100% 100% no-repeat; mask: url(../svg/tag-creme.svg) center / 100% 100% no-repeat;
  transition: background .3s, transform .45s var(--ease);
}
.btn--tag svg { fill: currentColor; }
.btn--tag:hover { transform: rotate(-2.5deg) scale(1.04); }
.btn--tag:hover::before { background: var(--laranja); transform: scaleX(1.04); }
.btn--tag:hover svg { transform: translateX(4px); }
.btn--ghost { color: var(--creme); padding-inline: 10px; }
.btn--ghost::after {
  content: ''; position: absolute; left: 10px; right: 10px; bottom: 4px; height: 12px; background: var(--verde);
  -webkit-mask: url(../svg/torn-top.svg) 0 0 / 260px 100% repeat-x; mask: url(../svg/torn-top.svg) 0 0 / 260px 100% repeat-x;
  transform-origin: left; transition: transform .45s var(--ease), background .3s;
}
.btn--ghost:hover::after { transform: scaleX(.6); background: var(--laranja); }

/* =========================================================
   HEADER + MENU
   ========================================================= */
.hd {
  position: fixed; inset: 0 0 auto; z-index: 50; height: var(--hd-h);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding: 0 var(--gutter);
  transition: transform .55s var(--ease), background-color .4s, backdrop-filter .4s;
}
.hd.is-scrolled { background: rgba(5, 5, 5, .84); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); }
.hd.is-hidden { transform: translateY(-100%); }
.hd__logo { grid-column: 1; grid-row: 1; justify-self: start; display: block; opacity: 0; transform: translateY(-8px); transition: opacity .4s, transform .5s var(--ease); }
.hd.is-scrolled .hd__logo, .menu-open .hd__logo { opacity: 1; transform: none; }
.hd__logo img { height: 58px; width: auto; transition: height .5s var(--ease); filter: drop-shadow(0 6px 14px rgba(0,0,0,.5)); }
.hd__nav { grid-column: 2; grid-row: 1; justify-self: center; display: flex; align-items: center; gap: 4px; padding: 7px 10px; --cut-bg: var(--creme); }
.hd__nav a {
  position: relative; isolation: isolate; padding: 11px 18px 9px; color: var(--preto);
  font-family: var(--f-display); font-size: clamp(1.05rem, .5vw + .8rem, 1.3rem); line-height: 1;
}
.hd__nav a::before {
  content: ''; position: absolute; inset: 1px -2px; z-index: -1; background: var(--c);
  -webkit-mask: url(../svg/tag-creme.svg) center / 100% 100% no-repeat; mask: url(../svg/tag-creme.svg) center / 100% 100% no-repeat;
  opacity: 0; transform: scale(.7) rotate(-6deg); transition: opacity .3s, transform .45s var(--ease);
}
.hd__nav a:hover::before, .hd__nav a.is-current::before { opacity: 1; transform: rotate(-2deg); }
.hd__ig {
  grid-column: 3; grid-row: 1; justify-self: end; display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 18px 12px 14px; color: var(--preto); font-size: .9rem; line-height: 1; --cut-bg: var(--laranja);
  transition: transform .4s var(--ease);
}
.hd__ig svg { width: 20px; height: 20px; fill: currentColor; }
.hd__ig:hover { transform: rotate(-3deg); --cut-bg: var(--amarelo); }
.hd__burger { display: none; grid-column: 3; grid-row: 1; justify-self: end; width: 54px; height: 54px; cursor: pointer; z-index: 2; }
.hd__burger span { position: absolute; left: 16px; right: 16px; height: 3px; background: var(--preto); transition: transform .45s var(--ease), top .45s var(--ease); }
.hd__burger span:first-child { top: 21px; }
.hd__burger span:last-child { top: 30px; }
.hd__burger[aria-expanded='true'] span:first-child { top: 26px; transform: rotate(45deg); }
.hd__burger[aria-expanded='true'] span:last-child { top: 26px; transform: rotate(-45deg); }

.menu {
  position: fixed; inset: 0; z-index: 45; background: var(--preto);
  display: flex; flex-direction: column; justify-content: center;
  padding: calc(var(--hd-h) + 20px) var(--gutter) 36px; visibility: hidden; overflow: hidden;
}
.menu__nav { display: flex; flex-direction: column; gap: 4px; position: relative; z-index: 1; }
.menu__nav a { font-family: var(--f-display); font-size: clamp(2.6rem, 12vw, 5rem); line-height: 1.04; color: var(--c); display: inline-block; }
.menu__foot { position: relative; z-index: 1; margin-top: 34px; color: var(--muted); letter-spacing: .14em; text-transform: uppercase; font-size: .8rem; }
.menu__bg img { position: absolute; pointer-events: none; }
.menu__roda { width: 58vw; max-width: 340px; right: -22vw; bottom: -10vw; opacity: .9; }
.menu__fita { height: 70vh; right: 4vw; top: 10vh; opacity: .55; }
.menu__estrela { width: 60px; left: 70%; top: 18%; }

/* =========================================================
   HERO
   ========================================================= */
.hero {
  position: relative; min-height: 100svh; display: grid; align-items: center; overflow: hidden; isolation: isolate;
  padding: calc(var(--hd-h) + 16px) var(--gutter) clamp(64px, 9vh, 110px);
}
.hero__decor { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.dz { position: absolute; will-change: transform; }
.deco { width: 100%; height: auto; }
.deco--red :is(path, circle, ellipse) { fill: var(--vermelho); }
.deco--blue :is(path, circle, ellipse) { fill: var(--azul); }
.deco--flip { scale: -1 1; }
/* fitas e rodas */
.dz--fita-tl { width: clamp(180px, 22vw, 560px); left: -5vw; top: -9vw; }
.dz--fita-r { width: clamp(80px, 8vw, 140px); right: -1.5vw; top: 9vh; }
.dz--roda-l { width: clamp(120px, 13vw, 210px); left: -6.5vw; bottom: -7vw; }
.dz--roda-r { width: clamp(140px, 15vw, 250px); right: -7vw; bottom: -6vw; }
.dz--fita-l { width: clamp(150px, 16vw, 260px); left: 12vw; bottom: -12vh; }
/* miçangas: sempre entrando e saindo pelas bordas (sem pontas soltas) */
.dz--contas-t { width: clamp(170px, 17vw, 420px); right: 20%; top: -2.2vw; }
.dz--contas-tr { width: clamp(200px, 20vw, 520px); right: -3.6vw; top: -5vw; }
.dz--contas-l { --w: clamp(80px, 7.2vw, 230px); width: var(--w); left: calc(var(--w) * -.47); top: 32%; }
.dz--contas-r { --w: clamp(80px, 7.2vw, 230px); width: var(--w); right: calc(var(--w) * -.47); top: 40%; }
/* formas pequenas */
.dz--flor { width: clamp(40px, 4.4vw, 70px); left: 47%; bottom: 17vh; }
.dz--estrela { width: clamp(40px, 4.4vw, 68px); right: 10vw; top: 26vh; }
.dz--estrela2 { width: clamp(34px, 3.6vw, 56px); left: 39%; bottom: 7vh; }
.dz--trevo { width: clamp(34px, 3.6vw, 56px); right: 37vw; top: 15vh; }
.dz--coracao { width: clamp(22px, 2.2vw, 34px); left: 53%; top: 74vh; }
.dz--lua { width: clamp(26px, 2.6vw, 40px); right: 5vw; bottom: 30vh; }

.hero__inner {
  position: relative; z-index: 2; width: 100%; max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1.12fr .88fr; align-items: center; gap: clamp(16px, 3vw, 56px);
}
.hero__copy { display: flex; flex-direction: column; align-items: flex-start; }
.hero__logo { margin: 0 0 0 -1.5%; width: min(104%, 720px); }
.logo { width: 100%; height: auto; overflow: visible; }
.hero__date {
  margin: clamp(10px, 2vh, 22px) 0 0; font-family: var(--f-display); color: var(--amarelo);
  font-size: clamp(2.3rem, 4.6vw, 4.6rem); line-height: .92; letter-spacing: -.005em;
}
.hero__date span { color: var(--creme); }
.hero__lead { margin: clamp(12px, 2vh, 22px) 0 10px; font-size: clamp(1.1rem, 1vw + .6rem, 1.55rem); line-height: 1.22; text-transform: uppercase; max-width: 28ch; }
.hero__meta { margin: 0; display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .98rem; }
.hero__meta svg { width: 18px; height: 18px; fill: var(--verde); flex: none; }
.hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: clamp(20px, 3.4vh, 34px); }

.hero__kv { position: relative; justify-self: center; width: min(100%, 540px); }
.hero__rei { position: relative; z-index: 1; width: 100%; height: auto; max-height: calc(100svh - var(--hd-h) - 70px); object-fit: contain; filter: drop-shadow(0 30px 50px rgba(0,0,0,.65)); }
.hero__kv-glow { position: absolute; inset: 16% 4% 6%; z-index: 0; background: radial-gradient(closest-side, rgba(245,159,0,.32), rgba(198,34,34,.16) 55%, transparent); filter: blur(28px); }
.hero__scroll { position: absolute; left: 50%; bottom: 18px; z-index: 3; translate: -50% 0; display: block; color: var(--creme); }
.hero__scroll svg { width: clamp(34px, 3vw, 46px); height: auto; fill: currentColor; animation: bob 1.6s var(--ease) infinite; filter: drop-shadow(3px 4px 0 var(--laranja)); transition: color .3s; }
.hero__scroll:hover { color: var(--amarelo); }
@keyframes bob { 50% { transform: translateY(8px); } }

/* estados do intro (o JS revela) */
.js:not(.intro-done) .hero__logo,
.js:not(.intro-done) .hero__kv,
.js:not(.intro-done) .hero__decor,
.js:not(.intro-done) .hero__scroll,
.js:not(.intro-done) [data-intro] { visibility: hidden; }

/* =========================================================
   FAIXAS (marquee)
   ========================================================= */
.tapes { position: relative; z-index: 3; padding: clamp(36px, 6vw, 80px) 0 clamp(20px, 4vw, 40px); overflow: hidden; }
.tape { --e: 22px; position: relative; width: 112vw; margin-left: -6vw; padding: clamp(32px, 2.8vw, 42px) 0 clamp(30px, 2.6vw, 38px); }
.tape--a { background: var(--laranja); color: var(--preto); rotate: -2.6deg; z-index: 2; }
.tape--b { background: var(--verde); color: var(--preto); rotate: 2deg; margin-top: -22px; --tx: -517px; --bx: -803px; }
.marquee { display: flex; width: max-content; will-change: transform; }
.marquee__group { display: flex; align-items: center; flex: none; }
.marquee__item { font-family: var(--f-display); font-size: clamp(1.7rem, 3.7vw, 3.5rem); line-height: 1; padding: 0 .45em; white-space: nowrap; }
.marquee__sep { width: auto; height: clamp(22px, 2.8vw, 44px); }

/* =========================================================
   SOBRE
   ========================================================= */
.sobre { position: relative; padding: clamp(70px, 10vw, 160px) 0 clamp(60px, 8vw, 120px); }
.sobre__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 6vw, 100px); align-items: center; }
.statement { font-family: var(--f-display); font-size: clamp(2.5rem, 4.7vw, 4.8rem); line-height: .92; margin: 18px 0 0; }
.statement em { font-style: normal; }
.sobre__body p { margin: 0 0 16px; font-size: clamp(1.02rem, .4vw + .9rem, 1.2rem); color: var(--muted); max-width: 46ch; }
.stats { list-style: none; padding: 0; margin: 30px 0 0; display: grid; grid-template-columns: repeat(4, auto); gap: 18px 30px; justify-content: start; }
.stats b { display: block; font-family: var(--f-display); font-weight: normal; font-size: clamp(2.6rem, 4.6vw, 4.4rem); line-height: .9; }
.stats li:nth-child(1) b { color: var(--laranja); }
.stats li:nth-child(2) b { color: var(--verde); }
.stats li:nth-child(3) b { color: var(--roxo-claro); }
.stats li:nth-child(4) b { color: var(--vermelho); }
.stats span { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }

.coroa { margin-top: clamp(70px, 10vw, 150px); }
.coroa__intro { display: grid; grid-template-columns: auto 1fr; gap: clamp(18px, 3vw, 40px); align-items: center; max-width: 920px; }
.coroa__img { width: clamp(100px, 11vw, 170px); height: auto; }
.coroa__t { font-family: var(--f-display); font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1; margin: 0 0 10px; color: var(--laranja); }
.coroa__intro p { margin: 0; color: var(--muted); max-width: 60ch; }
.coroa__list { list-style: none; padding: 0; margin: clamp(70px, 8vw, 110px) 0 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(12px, 1.6vw, 22px); }
.coroa__list a {
  --e: 22px; position: relative; isolation: isolate; height: 100%;
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 0 30px 36px; color: var(--creme);
  transition: translate .5s var(--ease), rotate .5s var(--ease);
}
.coroa__list a::before { content: ''; position: absolute; inset: 48px 0 0; z-index: -1; background: var(--c); -webkit-mask: var(--torn); mask: var(--torn); }
.coroa__list li:nth-child(2) a, .coroa__list li:nth-child(3) a { color: var(--preto); }
.coroa__list img { height: clamp(116px, 10.5vw, 150px); width: auto; margin: 0 0 8px -14px; transition: rotate .6s var(--ease), scale .6s var(--ease); transform-origin: 50% 90%; }
.coroa__list b { font-family: var(--f-display); font-weight: normal; font-size: clamp(1.4rem, 1.8vw, 1.9rem); line-height: 1; }
.coroa__list span { font-size: .86rem; line-height: 1.35; opacity: .9; }
.coroa__list a:hover { translate: 0 -6px; rotate: -1.2deg; }
.coroa__list a:hover img { rotate: -10deg; scale: 1.08; }

/* =========================================================
   PROGRAMAÇÃO
   ========================================================= */
.prog { position: relative; padding: clamp(80px, 10vw, 150px) 0 clamp(80px, 9vw, 140px); }
.prog__bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.prog__fita { position: absolute; width: min(70vw, 900px); right: -18vw; top: 40px; opacity: .9; rotate: -8deg; }
.prog .sec-head { position: relative; }

.filters { display: flex; flex-wrap: wrap; gap: 10px; margin-top: clamp(26px, 3vw, 40px); position: relative; }
.chip {
  --cut-bg: rgba(244,236,201,.1);
  display: inline-flex; align-items: center; gap: 8px; min-height: 50px; padding: 8px 20px 8px 12px; cursor: pointer;
  font-size: .94rem; line-height: 1; transition: color .3s, transform .35s var(--ease);
}
.chip[data-filter='all'] { padding-left: 20px; }
.chip__icon { width: 40px; height: 40px; object-fit: contain; margin: -10px 0; transition: transform .45s var(--ease); }
.chip:hover { transform: translateY(-2px) rotate(-1deg); --cut-bg: rgba(244,236,201,.18); }
.chip:hover .chip__icon { transform: rotate(-12deg) scale(1.12); }
.chip.is-active { --cut-bg: var(--c, var(--creme)); color: var(--ink, var(--preto)); }

.daynav {
  position: sticky; top: var(--hd-offset); z-index: 30; margin: clamp(26px, 3vw, 40px) 0 0;
  background: rgba(5,5,5,.9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-block: 1px solid var(--line); transition: top .55s var(--ease);
}
.daynav__track {
  display: flex; gap: clamp(6px, 1vw, 14px); justify-content: center; max-width: var(--maxw); margin: 0 auto;
  padding: 10px var(--gutter); overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.daynav__track::-webkit-scrollbar { display: none; }
.daynav__item {
  position: relative; isolation: isolate; flex: none; width: 74px; height: 74px;
  display: grid; place-content: center; text-align: center; line-height: .86; color: var(--creme);
  transition: transform .45s var(--ease), color .3s, opacity .3s;
}
.daynav__item::before {
  content: ''; position: absolute; inset: 0; z-index: -1; background: rgba(244,236,201,.09);
  -webkit-mask: url(../svg/blob-verde.svg) center / contain no-repeat; mask: url(../svg/blob-verde.svg) center / contain no-repeat;
  transition: background .3s;
}
.daynav__item:nth-child(even)::before { -webkit-mask-image: url(../svg/blob-vermelho.svg); mask-image: url(../svg/blob-vermelho.svg); }
.daynav__item b { font-weight: normal; font-size: 1.9rem; letter-spacing: -.02em; }
.daynav__item span { font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; margin-top: 3px; }
.daynav__item:hover { transform: rotate(-7deg) scale(1.06); }
.daynav__item:hover::before { background: rgba(244,236,201,.18); }
.daynav__item.is-active { color: var(--ink); transform: scale(1.08); }
.daynav__item.is-active::before { background: var(--c); }
.daynav__item.is-empty { opacity: .28; pointer-events: none; }

.days { display: flex; flex-direction: column; gap: clamp(56px, 7vw, 110px); padding-top: clamp(40px, 5vw, 70px); }
.day {
  display: grid; grid-template-columns: minmax(220px, 290px) 1fr; gap: clamp(24px, 4vw, 70px);
  scroll-margin-top: calc(var(--hd-h) + var(--daynav-h) + 10px);
}
.day.is-hidden { display: none; }
.day__head { position: sticky; top: calc(var(--hd-offset) + var(--daynav-h) + 24px); align-self: start; transition: top .55s var(--ease); }
.day__toggle { all: unset; box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; width: 100%; }
.day__date {
  position: relative; isolation: isolate; flex: none; width: clamp(118px, 11vw, 160px); aspect-ratio: 1;
  display: grid; place-content: center; text-align: center; color: var(--blob-ink); line-height: .8; rotate: -4deg;
}
.day__date::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--blob); -webkit-mask: url(../svg/blob-vermelho.svg) center / contain no-repeat; mask: url(../svg/blob-vermelho.svg) center / contain no-repeat; }
.day__date b { font-weight: normal; font-size: clamp(3rem, 4.6vw, 4.4rem); letter-spacing: -.03em; }
.day__date i { font-style: normal; text-transform: uppercase; font-size: clamp(1rem, 1.3vw, 1.3rem); margin-top: 4px; }
.day__txt { display: flex; flex-direction: column; align-items: flex-start; }
.day__wd { display: inline-flex; align-items: center; gap: 10px; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--amarelo); }
.day__today { --cut-bg: var(--verde-claro); font-style: normal; color: var(--preto); padding: 4px 10px 3px; letter-spacing: .1em; font-size: .7rem; }
.day__title { font-family: var(--f-display); font-size: clamp(1.6rem, 2.3vw, 2.3rem); line-height: .96; margin-top: 8px; }
.day__count { --cut-bg: rgba(244,236,201,.12); margin-top: 12px; font-size: .78rem; padding: 6px 13px 5px; color: var(--muted); }
.day__chev { display: none; }
.day__art { position: absolute; left: clamp(78px, 7.4vw, 110px); top: -18px; pointer-events: none; }
.day__art img { width: clamp(110px, 9.6vw, 144px); height: auto; filter: drop-shadow(0 16px 30px rgba(0,0,0,.5)); }

.day__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: clamp(20px, 2.2vw, 30px); }
.ev.is-hidden { display: none; }
.ev__band {
  --e: 24px; position: relative; isolation: isolate; color: var(--ink); rotate: var(--r, 0deg);
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(14px, 2vw, 30px);
  padding: clamp(36px, 3.2vw, 46px) clamp(32px, 3.2vw, 48px);
}
.ev__band::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--c); -webkit-mask: var(--torn); mask: var(--torn); }
.ev__time { align-self: start; }
.tagtime {
  position: relative; isolation: isolate; display: inline-block; white-space: nowrap; color: var(--preto);
  font-family: var(--f-display); font-size: clamp(1.3rem, 1.7vw, 1.8rem); line-height: 1; padding: 12px 18px 10px; rotate: -3deg;
}
.tagtime::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--creme); -webkit-mask: url(../svg/tag-creme.svg) center / 100% 100% no-repeat; mask: url(../svg/tag-creme.svg) center / 100% 100% no-repeat; }
.ev__body { min-width: 0; }
.ev__kicker { margin: 0 0 6px; font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; opacity: .86; }
.ev__name { margin: 0; font-family: var(--f-display); font-size: clamp(1.45rem, 2.1vw, 2.15rem); line-height: 1; text-wrap: balance; }
.ev__desc { margin: 8px 0 0; font-size: .98rem; line-height: 1.45; opacity: .92; max-width: 56ch; }
.ev__label { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; opacity: .8; }
.ev__guests { margin-top: 12px; }
.ev__guests ul, .ev__artists { list-style: none; padding: 0; margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 8px 8px; }
.ev__guests li { font-size: .9rem; }
.ev__guests li > a, .ev__guests li > span { --cut-bg: rgba(0,0,0,.24); display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px 7px; }
.ev__guests li > a:hover { --cut-bg: rgba(0,0,0,.45); }
.ev__guests small { font-size: .78rem; opacity: .85; }
.ev__guests svg, .ev__ig svg { width: 14px; height: 14px; fill: currentColor; }
.ev__artists a { --cut-bg: rgba(0,0,0,.24); display: inline-flex; align-items: center; gap: 8px; padding: 5px 16px 5px 6px; font-size: .86rem; }
.ev__artists a:hover { --cut-bg: rgba(0,0,0,.45); }
.ev__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 16px; font-size: .9rem; }
.ev__place { display: inline-flex; align-items: center; gap: 6px; }
.ev__place svg { width: 17px; height: 17px; fill: currentColor; flex: none; }
.ev__place.is-tbd { font-style: italic; opacity: .85; }
.ev__ig { --cut-bg: rgba(0,0,0,.16); display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 5px; }
.ev__ig:hover { --cut-bg: rgba(0,0,0,.35); }
.ev__cal {
  --cut-bg: var(--preto); margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 9px 15px 8px;
  color: var(--creme); font-size: .8rem; cursor: pointer; transition: transform .3s var(--ease);
}
.ev__cal svg { width: 16px; height: 16px; }
.ev__cal:hover { --cut-bg: var(--creme); color: var(--preto); transform: rotate(-3deg); }
.ev__media { width: clamp(150px, 15vw, 230px); margin: -56px -14px -56px 0; align-self: center; }
.ev__media .shape { filter: drop-shadow(0 12px 24px rgba(0,0,0,.35)); }
/* ilustrações sempre sobre um grafismo preto */
.ev__illus { position: relative; isolation: isolate; align-self: center; margin: -40px -6px -40px 0; padding: 6px; }
.ev__illus::before {
  content: ''; position: absolute; inset: 4% -6% 0; z-index: -1; background: var(--preto); rotate: -8deg;
  -webkit-mask: url(../svg/blob-vermelho.svg) center / contain no-repeat; mask: url(../svg/blob-vermelho.svg) center / contain no-repeat;
}
.ev__illus img { width: clamp(96px, 9.4vw, 140px); height: auto; }
@media (min-width: 961px) { .ev__illus--dup { display: none; } }

/* fotos dentro dos grafismos */
.shape {
  position: relative; margin: 0; aspect-ratio: 1; overflow: hidden; background: var(--c, var(--laranja));
  -webkit-mask-position: center; -webkit-mask-size: contain; -webkit-mask-repeat: no-repeat;
  mask-position: center; mask-size: contain; mask-repeat: no-repeat;
}
.shape img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); scale: var(--zoom, 1); transform-origin: var(--pos, 50% 50%); }
.shape--flor { -webkit-mask-image: url(../svg/flor-roxa.svg); mask-image: url(../svg/flor-roxa.svg); }
.shape--trevo { -webkit-mask-image: url(../svg/trevo-azul.svg); mask-image: url(../svg/trevo-azul.svg); }
.shape--blob { -webkit-mask-image: url(../svg/blob-verde.svg); mask-image: url(../svg/blob-verde.svg); }
.shape--blob2 { -webkit-mask-image: url(../svg/blob-vermelho.svg); mask-image: url(../svg/blob-vermelho.svg); }
.shape--illus { display: grid; place-items: center; background: var(--preto); }
.shape__illus { width: 78%; }
.shape__illus img { width: 100%; height: auto; object-fit: contain; scale: 1; }
.shape--xs { width: 42px; flex: none; }

/* =========================================================
   ATRAÇÕES
   ========================================================= */
.atr { position: relative; padding-top: clamp(90px, 11vw, 170px); }
.atr .sec-quote { margin-top: 4px; }
.lineup {
  list-style: none; padding: 0; margin: clamp(40px, 6vw, 80px) auto 0; max-width: 1320px;
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .08em .3em;
  font-family: var(--f-display); font-size: clamp(2rem, 5.4vw, 5.4rem); line-height: .94; text-align: center;
}
.lineup__item a { display: inline-flex; flex-direction: column; align-items: center; color: var(--c); transition: opacity .35s, transform .45s var(--ease); }
.lineup__name { display: inline-block; }
.lineup__item small { font-family: var(--f-text); font-size: max(.2em, 12px); line-height: 1.1; color: var(--creme); opacity: .72; margin-top: .25em; }
.lineup__sep img { height: .5em; width: auto; }
@media (hover: hover) and (pointer: fine) {
  .lineup:has(a:hover) .lineup__item a:not(:hover) { opacity: .28; }
  .lineup__item a:hover { transform: rotate(-2deg) scale(1.03); }
}
.lineup-float { position: fixed; left: 0; top: 0; z-index: 40; width: clamp(220px, 21vw, 320px); aspect-ratio: 1; pointer-events: none; visibility: hidden; opacity: 0; }
.lineup-float__item { position: absolute; inset: 0; opacity: 0; }
.lineup-float .shape { width: 100%; height: 100%; }

.shows { position: relative; margin-top: clamp(80px, 9vw, 130px); padding-bottom: clamp(60px, 8vw, 120px); }
.shows__track { display: flex; align-items: center; gap: clamp(28px, 4vw, 80px); padding: 0 var(--gutter); width: max-content; }
.shows__intro { width: clamp(280px, 26vw, 400px); flex: none; }
.shows__t { font-family: var(--f-display); font-size: clamp(2.2rem, 4vw, 3.8rem); line-height: .92; margin: 14px 0 14px; }
.shows__intro p { color: var(--muted); margin: 0; }
.shows__hint { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--amarelo); }
.shows__hint svg { width: 26px; height: 26px; animation: nudge 1.6s var(--ease) infinite; }
@keyframes nudge { 50% { transform: translateX(6px); } }
.show { flex: none; width: clamp(300px, 31vw, 470px); display: flex; flex-direction: column; gap: 22px; }
.show__media { position: relative; width: 88%; aspect-ratio: 1; margin-left: 4%; }
.show__media > .shape { position: absolute; inset: 0; }
.show__ghost { position: absolute; inset: 0; background: var(--c); translate: 6% 5%; rotate: 14deg; }
.show__num {
  position: absolute; left: -4%; top: 2%; z-index: 2; isolation: isolate; color: var(--preto);
  font-family: var(--f-display); font-size: clamp(1.4rem, 2vw, 2rem); line-height: 1; padding: 10px 14px 8px; rotate: -7deg;
}
.show__num::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--creme); -webkit-mask: url(../svg/tag-creme.svg) center / 100% 100% no-repeat; mask: url(../svg/tag-creme.svg) center / 100% 100% no-repeat; }
.show__genre { margin: 0 0 6px; display: inline-flex; align-items: center; gap: 8px; font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.show__genre::before { content: ''; width: 12px; height: 12px; background: var(--c); flex: none; -webkit-mask: url(../svg/estrela-verde.svg) center / contain no-repeat; mask: url(../svg/estrela-verde.svg) center / contain no-repeat; }
.show__name { margin: 0; font-family: var(--f-display); font-size: clamp(2rem, 3.2vw, 3.3rem); line-height: .92; color: var(--c); text-wrap: balance; }
.show__name span { display: block; font-size: .46em; color: var(--creme); margin-top: .2em; }
.show__meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; }
.show__meta div { --cut-bg: rgba(244,236,201,.09); padding: 10px 16px 9px; }
.show__meta dt { font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.show__meta dd { margin: 2px 0 0; font-family: var(--f-display); font-size: 1.12rem; line-height: 1.05; }
.show__ig { --cut-bg: transparent; display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; padding: 8px 14px 7px 0; font-size: .92rem; color: var(--muted); transition: color .3s, padding .3s var(--ease); }
.show__ig svg { width: 18px; height: 18px; fill: currentColor; }
.show__ig:hover { --cut-bg: var(--c); color: var(--ink); padding-left: 14px; }

@media (min-width: 1024px) {
  .shows { height: 100vh; height: 100svh; display: flex; align-items: center; overflow: hidden; margin-top: clamp(40px, 5vw, 80px); padding-bottom: 0; }
}
/* tablet e celular: os cards seguem o fluxo vertical da página */
@media (max-width: 1023px) {
  .shows__track { width: auto; flex-direction: column; align-items: stretch; gap: clamp(64px, 12vw, 100px); }
  .shows__intro { width: auto; max-width: 560px; }
  .shows__hint { display: none; }
  .show { width: 100%; max-width: 520px; margin-inline: auto; }
  .show__media { width: min(86%, 420px); }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .shows__track { display: grid; grid-template-columns: 1fr 1fr; column-gap: 40px; }
  .shows__intro { grid-column: 1 / -1; }
}

/* =========================================================
   INFO
   ========================================================= */
.info { position: relative; padding: clamp(90px, 11vw, 170px) 0 clamp(80px, 9vw, 130px); }
.places { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 1.6vw, 22px); margin-top: clamp(36px, 4vw, 56px); }
.place, .tip {
  --e: 22px; position: relative; isolation: isolate; display: flex; flex-direction: column; gap: 12px;
  padding: clamp(34px, 3vw, 44px); color: var(--creme); transition: translate .5s var(--ease);
}
.place::before, .tip::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--card, var(--preto-2)); -webkit-mask: var(--torn); mask: var(--torn); transition: background .3s; }
.place:hover { translate: 0 -4px; }
.place:hover::before { background: #201a19; }
.place--main { grid-row: span 2; color: var(--ink); padding: clamp(40px, 3.8vw, 58px); }
.place--main::before, .place--main:hover::before { background: var(--c); }
.place__pin { width: 56px; height: 56px; display: grid; place-items: center; position: relative; isolation: isolate; color: var(--ink); }
.place__pin::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--c); -webkit-mask: url(../svg/blob-verde.svg) center / contain no-repeat; mask: url(../svg/blob-verde.svg) center / contain no-repeat; }
.place--main .place__pin { color: var(--vermelho); }
.place--main .place__pin::before { background: var(--creme); }
.place__pin svg { width: 26px; height: 26px; fill: currentColor; }
.place__name { margin: 0; font-family: var(--f-display); font-size: clamp(1.5rem, 2.1vw, 2.1rem); line-height: 1; }
.place--main .place__name { font-size: clamp(2.2rem, 4vw, 3.8rem); }
.place__note { margin: -4px 0 0; color: var(--muted); font-size: .95rem; }
.place--main .place__note { color: inherit; opacity: .85; }
.place__evs { list-style: none; padding: 0; margin: 4px 0 6px; display: flex; flex-direction: column; font-size: .9rem; }
.place__evs a { display: grid; grid-template-columns: 50px 1fr; gap: 10px; padding: 8px 0 7px; border-bottom: 1px dashed rgba(244,236,201,.18); transition: padding .3s var(--ease); }
.place--main .place__evs a { border-bottom-color: rgba(244,236,201,.32); }
.place__evs a:hover { padding-left: 6px; }
.place__evs b { font-weight: normal; color: var(--amarelo); }
.place--main .place__evs b { color: var(--creme); opacity: .85; }
.place__evs span { opacity: .9; }
.place__evs i { font-style: normal; opacity: .65; font-size: .86em; white-space: nowrap; }
.place__map { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-family: var(--f-display); font-size: 1.12rem; color: var(--creme); }
.place__map svg { width: 22px; height: 22px; transition: transform .4s var(--ease); }
.place__map:hover svg { transform: translateX(5px); }

.tips { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 1.6vw, 22px); margin-top: clamp(14px, 1.6vw, 22px); }
.tip { gap: 0; }
.tip__icon { width: 62px; height: 62px; display: grid; place-items: center; position: relative; isolation: isolate; color: var(--ink); margin-bottom: 16px; }
.tip__icon::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--c); -webkit-mask: url(../svg/flor-roxa.svg) center / contain no-repeat; mask: url(../svg/flor-roxa.svg) center / contain no-repeat; }
.tip__icon svg { width: 28px; height: 28px; }
.tip__icon--art { width: auto; height: 62px; justify-items: start; }
.tip__icon--art::before { display: none; }
.tip__icon--art img { height: 70px; width: auto; }
.tip h3 { margin: 0 0 8px; font-family: var(--f-display); font-size: 1.5rem; line-height: 1; }
.tip p { margin: 0; color: var(--muted); font-size: .96rem; }
.tip a { color: var(--creme); text-decoration: underline; text-underline-offset: 3px; }

/* =========================================================
   INSTAGRAM CTA
   ========================================================= */
.igcta { --e: 30px; position: relative; overflow: hidden; isolation: isolate; text-align: center; padding: clamp(100px, 12vw, 190px) 0; color: var(--creme); background: var(--roxo); margin-inline: -1vw; }
.igcta__decor img { position: absolute; z-index: -1; pointer-events: none; }
.igcta__fita1 { width: clamp(220px, 26vw, 400px); left: -5vw; top: -9vw; }
.igcta__roda { width: clamp(140px, 18vw, 280px); right: -5vw; bottom: -6vw; }
.igcta__contas { height: 135%; right: 12vw; top: -18%; width: auto; }
.igcta__estrela { width: clamp(44px, 5vw, 76px); left: 14vw; bottom: 16%; }
.igcta__inner { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.igcta .kicker { color: var(--amarelo); }
.igcta__link { display: inline-flex; align-items: baseline; justify-content: center; flex-wrap: wrap; font-family: var(--f-display); font-size: clamp(2.2rem, 8.6vw, 8.8rem); line-height: .9; max-width: 100%; }
.igcta__at { color: var(--amarelo); display: inline-block; }
.igcta__handle .ch { display: inline-block; }
.igcta__link:hover .igcta__at { animation: spinat .8s var(--ease); }
@keyframes spinat { to { transform: rotate(360deg); } }
.igcta__txt { margin: 0; max-width: 46ch; font-size: clamp(1rem, .4vw + .9rem, 1.2rem); opacity: .9; }
.igcta .btn { margin-top: 10px; }

/* =========================================================
   RODAPÉ
   ========================================================= */
.ft { padding: clamp(60px, 8vw, 110px) 0 36px; }
.ft__paper {
  --k: 1.9; position: relative; isolation: isolate; color: #1a171b;
  display: grid; grid-template-columns: auto 1fr; gap: clamp(22px, 3vw, 40px) clamp(28px, 4vw, 60px);
  padding: clamp(44px, 4.6vw, 66px) clamp(36px, 4.6vw, 70px);
}
.ft__paper::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--creme); }
.ft__group { display: flex; flex-direction: column; gap: 14px; }
.ft__group--apoio-institucional { grid-column: 1 / -1; }
.ft__group--apoio-promocional { grid-column: 1 / -1; }
.ft__label { margin: 0; font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; opacity: .7; }
.ft__logos { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 18px clamp(20px, 2.6vw, 40px); }
.ft__logo { height: calc(var(--h) * var(--k) * 1px); width: auto; max-width: 100%; }
.ft__legal { margin: 22px 0 0; font-size: .78rem; line-height: 1.5; color: var(--muted); max-width: 95ch; }
.ft__bar { position: relative; display: flex; justify-content: center; align-items: center; margin-top: clamp(40px, 6vw, 80px); padding-top: clamp(36px, 4vw, 56px); border-top: 1px solid var(--line); }
.ft__brand { display: block; }
.ft__brand img { width: clamp(220px, 24vw, 340px); height: auto; }
.ft__top { position: absolute; right: 0; top: 50%; translate: 0 -10%; }
.ft__top { width: 62px; height: 62px; flex: none; display: grid; place-items: center; color: var(--preto); transition: transform .4s var(--ease); }
.ft__top svg { width: 26px; height: 26px; }
.ft__top:hover { transform: translateY(-4px) rotate(-8deg); --cut-bg: var(--laranja); }

.toast {
  --cut-bg: var(--creme);
  position: fixed; left: 50%; bottom: 22px; z-index: 80; translate: -50% 220%; visibility: hidden;
  padding: 14px 22px 13px; color: var(--preto); font-size: .92rem;
  filter: drop-shadow(0 14px 30px rgba(0,0,0,.45)); transition: translate .5s var(--ease), visibility .5s; pointer-events: none;
}
.toast.is-on { translate: -50% 0; visibility: visible; }

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width: 1180px) {
  .coroa__list { grid-template-columns: repeat(3, 1fr); row-gap: 60px; }
  .places { grid-template-columns: repeat(2, 1fr); }
  .place--main { grid-column: 1 / -1; grid-row: auto; }
}

@media (max-width: 960px) {
  :root { --hd-h: 68px; --daynav-h: 82px; }
  /* header mobile: Instagram à esquerda, logo no centro (maior, vazando), menu à direita */
  .hd { gap: 10px; }
  .hd__nav { display: none; }
  .hd__ig { grid-column: 1; justify-self: start; padding: 13px; }
  .hd__ig span { display: none; }
  .hd__logo { grid-column: 2; justify-self: center; align-self: start; margin-top: 8px; visibility: hidden; }
  .hd.is-scrolled .hd__logo, .menu-open .hd__logo { visibility: visible; }
  .hd__logo img { height: 56px; }
  .hd.is-scrolled .hd__logo img, .menu-open .hd__logo img { height: 74px; }
  .hd__burger { display: block; }

  .hero { padding-top: calc(var(--hd-h) + 10px); padding-bottom: 70px; align-items: start; }
  .hero__inner { grid-template-columns: 1fr; text-align: center; gap: 6px; }
  .hero__copy { align-items: center; }
  .hero__logo { margin: 0; width: min(100%, 560px); }
  .hero__date { font-size: clamp(2.3rem, 10.5vw, 4rem); }
  .hero__lead { margin-inline: auto; }
  .hero__meta { justify-content: center; text-align: left; }
  .hero__cta { justify-content: center; }
  .hero__kv { width: min(78vw, 400px); margin-top: 18px; }
  .hero__rei { max-height: 58svh; }
  .dz--trevo, .dz--coracao, .dz--estrela2 { display: none; }
  .dz--fita-tl { width: 34vw; left: -12vw; top: -9vw; }
  .dz--contas-t { width: 34vw; left: 33%; right: auto; top: -4vw; }
  .dz--contas-tr { width: 40vw; right: -8vw; top: -10vw; }
  .dz--fita-r { width: 15vw; right: -6vw; top: 30vh; }
  .dz--roda-l { width: 24vw; left: -13vw; top: 47%; bottom: auto; }
  .dz--roda-r { width: 28vw; right: -15vw; top: 72%; bottom: auto; }
  .dz--contas-l { --w: 17vw; top: 64%; }
  .dz--contas-r { --w: 17vw; top: 48%; }
  .dz--flor { left: 6vw; bottom: 34%; }
  .dz--estrela { right: 6vw; top: 44%; }

  .sobre__grid { grid-template-columns: 1fr; }
  .stats { grid-template-columns: repeat(2, auto); }

  .prog__fita { display: none; }
  /* programação vira acordeão */
  .daynav__track { justify-content: flex-start; }
  .daynav__item { width: 62px; height: 62px; }
  .daynav__item b { font-size: 1.6rem; }
  .days { gap: 0; padding-top: 18px; }
  .day { display: block; border-bottom: 1px solid var(--line); scroll-margin-top: calc(var(--hd-h) + var(--daynav-h) + 4px); }
  .day__head { position: static; }
  .day__toggle { flex-direction: row; align-items: center; gap: 14px; padding: 16px 0; cursor: pointer; }
  .day__date { width: 80px; rotate: -5deg; }
  .day__date b { font-size: 2.15rem; }
  .day__date i { font-size: .8rem; margin-top: 2px; }
  .day__title { font-size: clamp(1.25rem, 5vw, 1.6rem); margin-top: 4px; }
  .day__count { margin-top: 6px; font-size: .72rem; padding: 4px 11px 3px; }
  .day__chev { --cut-bg: var(--c); display: grid; place-items: center; flex: none; margin-left: auto; width: 46px; height: 46px; color: var(--ink); transition: rotate .45s var(--ease); }
  .day__chev svg { width: 22px; height: 22px; }
  .day__toggle[aria-expanded='true'] .day__chev { rotate: 180deg; }
  .day__art { display: none; }
  .day__panel { overflow: hidden; }
  .day:not(.is-open) .day__panel { height: 0; }
  .day__list { padding: 40px 0 40px; gap: 40px; }
  .ev__band { --e: 18px; grid-template-columns: 1fr; gap: 12px; padding: 32px 26px 30px; }
  .ev__media, .ev__illus { position: absolute; right: 8px; top: -38px; margin: 0; }
  .ev__media { width: 112px; }
  .ev__illus img { width: 84px; }
  .ev__name { font-size: clamp(1.4rem, 6vw, 1.8rem); }
  .ev__band:has(.ev__media, .ev__illus) .ev__kicker { padding-right: 96px; }

  .places, .tips { grid-template-columns: 1fr; }
  .ft__paper { grid-template-columns: 1fr; --k: 1.45; }
  .ft__bar { flex-direction: column; gap: 24px; }
  .ft__brand img { width: min(72vw, 300px); }
  .ft__top { position: relative; right: auto; top: auto; translate: none; }
}

@media (max-width: 640px) {
  .coroa__intro { grid-template-columns: 1fr; }
  .coroa__list { grid-template-columns: 1fr 1fr; gap: 60px 12px; }
  .coroa__list li:last-child { grid-column: 1 / -1; }
  .coroa__list a { padding: 0 22px 30px; --e: 18px; }
  .coroa__list img { height: 104px; }
  .lineup { font-size: clamp(1.75rem, 8.4vw, 2.6rem); gap: .18em .3em; }
  .lineup__sep { display: none; }
  .ft__paper { --k: 1.25; }
  .btn { padding: 16px 22px 14px; }
  .chip { min-height: 46px; font-size: .88rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .grain { animation: none; }
}

/* grafismos pequenos animados nas laterais das seções */
.sdeco { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.sd { position: absolute; top: var(--y); width: var(--s); will-change: transform; }
.sd img { width: 100%; height: auto; }
.sd--l { left: calc(.4vw + var(--o)); }
.sd--r { right: calc(.4vw + var(--o)); }
.sobre > .wrap, .prog > .wrap, .atr > .wrap, .info > .wrap, .daynav, .shows { position: relative; z-index: 1; }
@media (max-width: 960px) {
  .sd { width: calc(var(--s) * .66); }
  .sd--l { left: calc(var(--s) * -.36); }
  .sd--r { right: calc(var(--s) * -.36); }
  .sdeco .sd:nth-child(n + 5) { display: none; }
}
