/* Cabeçalhos editoriais alinhados à margem esquerda.
   Encerramento e RSVP preservam sua composição central. */
.vision {
  grid-template-columns: 1fr;
  gap: 22px;
  position: relative;
  min-height: 690px;
  padding-right: 44vw;
  overflow: hidden;
}

.vision-copy {
  width: min(760px, 43vw);
  max-width: 100%;
  padding-top: 8px;
  position: relative;
  z-index: 2;
}

.vision > div:not(.section-label) {
  position: relative;
  z-index: 2;
}

.vision > div:not(.section-label) h2 {
  max-width: 48vw;
}

/* Escultura gráfica inspirada nos círculos e formas orgânicas da marca. */
.vision::before {
  content: none;
  white-space: pre;
  position: absolute;
  z-index: 1;
  width: min(40vw, 570px);
  aspect-ratio: 1;
  right: 3.5vw;
  top: 50%;
  translate: 0 -50%;
  display: grid;
  place-content: center;
  padding-left: 8%;
  border-radius: 45% 55% 62% 38% / 55% 38% 62% 45%;
  background:
    radial-gradient(circle at 50% 50%, transparent 0 12%, rgba(247,244,236,.66) 12.3% 12.8%, transparent 13.1% 23%, rgba(247,244,236,.58) 23.3% 23.8%, transparent 24.1% 35%, rgba(247,244,236,.48) 35.3% 35.8%, transparent 36.1%),
    var(--forest);
  color: var(--cream);
  font: 900 clamp(28px, 4.4vw, 65px)/.78 Raleway, sans-serif;
  letter-spacing: -.08em;
  box-shadow: 22px 22px 0 var(--lime);
  transform: rotate(-4deg);
  animation: visionMorph 10s ease-in-out infinite;
}

.vision::after {
  content: none;
  position: absolute;
  z-index: 3;
  right: 1.5vw;
  bottom: 15%;
  padding: 11px 16px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  background: var(--cream);
  color: var(--ink);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  transform: rotate(5deg);
}

@keyframes visionMorph {
  50% {
    border-radius: 59% 41% 39% 61% / 38% 57% 43% 62%;
    transform: rotate(2deg) scale(.97);
  }
}

.section-heading {
  grid-template-columns: 1fr;
  align-items: start;
  gap: 18px;
}

.section-heading h2 {
  max-width: 1100px;
}

.statement,
.mentoring-intro,
.formats,
.awards > div:first-child,
.live > div:first-child,
.future article {
  text-align: left;
}

/* Inteligência artificial + inteligência humana: órbitas e sinais vivos. */
.statement {
  isolation: isolate;
}

.statement::after {
  animation: statementOrbit 9s ease-in-out infinite alternate;
  transform-origin: 48% 51%;
  box-shadow:
    0 0 0 34px rgba(247,244,236,.16),
    0 0 0 68px rgba(23,63,43,.1);
}

.statement::before {
  content: none;
  display: none;
}

.statement h2 span {
  display: inline-block;
  transition: color .35s ease, transform .35s ease;
}

.statement:hover h2 span:first-child {
  color: var(--lime);
  transform: translateX(8px);
}

.statement:hover h2 span:last-child {
  color: var(--cream);
  transform: translateX(-8px);
}

/* Palestrantes: retratos ganham profundidade e um sinal de descoberta. */
.speaker {
  position: relative;
  transition: transform .4s cubic-bezier(.2,.8,.2,1), filter .4s ease;
}

.speaker-action {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 4;
  padding: 8px 10px;
  border-radius: 999px;
  background: var(--cream);
  color: var(--forest);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .12em;
  opacity: 0;
  transform: translateY(8px);
  transition: .3s ease;
}

.speaker .portrait,
.speaker .portrait::before,
.speaker .portrait i {
  transition: transform .5s cubic-bezier(.2,.8,.2,1), border-radius .5s ease, background .35s ease;
}

.speaker:hover {
  transform: translateY(-10px);
  filter: drop-shadow(0 18px 18px rgba(16,39,29,.14));
}

.speaker:hover .speaker-action {
  opacity: 1;
  transform: translateY(0);
}

.speaker:hover .portrait::before {
  transform: scale(1.22) translate(-8%, 8%);
  border-radius: 38% 62% 54% 46%;
}

.speaker:hover .portrait i {
  transform: scale(1.08) translateY(-4%);
  border-radius: 48% 52% 0 0;
}

/* Player ao vivo: radar, pulso e resposta tátil no hover. */
.video-frame {
  transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease, background .35s ease;
}

.video-frame::after {
  content: "";
  position: absolute;
  z-index: 1;
  width: 85%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(from 15deg, rgba(205,230,0,.34), transparent 22%, transparent 100%);
  animation: liveRadar 7s linear infinite;
  pointer-events: none;
}

.video-frame:hover {
  transform: translate(-7px,-7px) rotate(-.35deg);
  box-shadow: 25px 25px 0 var(--lime);
  background: #1d4e3c;
}

.video-frame .play {
  transition: transform .4s cubic-bezier(.2,.8,.2,1), background .3s ease, color .3s ease, box-shadow .3s ease;
}

.video-frame:hover .play {
  transform: scale(1.16);
  background: var(--lime);
  color: var(--forest);
  box-shadow: 0 0 0 18px rgba(205,230,0,.13);
}

.video-frame:hover .live-badge {
  transform: translateY(-3px);
}

.live-badge {
  transition: transform .3s ease;
}

@keyframes statementOrbit {
  from { transform: rotate(-4deg) scale(.985); }
  to { transform: rotate(5deg) scale(1.015); }
}

@keyframes liveRadar {
  to { transform: rotate(360deg); }
}

/* Vencedores: o pódio reage como uma pequena cerimônia. */
.future article:last-child {
  transition: transform .4s cubic-bezier(.2,.8,.2,1);
}

.podium {
  position: relative;
  overflow: visible;
  transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease, background .35s ease;
}

.podium-label {
  position: absolute;
  top: 18px;
  left: 20px;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .14em;
  opacity: .55;
  transition: opacity .3s ease, letter-spacing .3s ease;
}

.podium i {
  position: relative;
  transform-origin: bottom center;
  transition: transform .45s cubic-bezier(.18,.9,.25,1.35), box-shadow .35s ease, filter .35s ease;
}

.podium i small {
  position: absolute;
  left: 50%;
  top: 16px;
  translate: -50% 0;
  font: 800 8px Raleway, sans-serif;
  letter-spacing: .1em;
  opacity: 0;
  transition: opacity .25s ease, transform .3s ease;
}

.podium i:nth-child(2) small { color: var(--lime); }

.future article:last-child:hover {
  transform: translateY(-7px);
}

.future article:last-child:hover .podium {
  transform: perspective(900px) rotateX(2deg);
  box-shadow: 15px 18px 0 rgba(23,63,43,.14);
  background: #a7ccdb;
}

.future article:last-child:hover .podium-label {
  opacity: 1;
  letter-spacing: .2em;
}

.future article:last-child:hover .podium i:nth-child(1) {
  transform: translateY(-10px);
  box-shadow: 0 12px 0 rgba(16,39,29,.12);
}

.future article:last-child:hover .podium i:nth-child(2) {
  transform: translateY(-18px) scale(1.035);
  box-shadow: 0 18px 0 rgba(205,230,0,.26);
}

.future article:last-child:hover .podium i:nth-child(3) {
  transform: translateY(-7px);
  box-shadow: 0 9px 0 rgba(16,39,29,.12);
}

.future article:last-child:hover .podium i small {
  opacity: 1;
  transform: translateY(3px);
}

/* Galeria: composição gráfica reativa ao cursor. */
.future article:first-child {
  transition: transform .4s cubic-bezier(.2,.8,.2,1);
}

.gallery-placeholder {
  isolation: isolate;
  transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease, background .4s ease;
}

.gallery-action {
  position: absolute;
  z-index: 3;
  top: 18px;
  right: 20px;
  padding: 8px 11px;
  border-radius: 999px;
  background: var(--cream);
  color: var(--forest);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .13em;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .3s ease, transform .3s ease;
}

.gallery-placeholder i,
.gallery-placeholder b {
  transition: transform .55s cubic-bezier(.2,.8,.2,1), border-radius .55s ease, color .3s ease;
}

.future article:first-child:hover {
  transform: translateY(-7px);
}

.future article:first-child:hover .gallery-placeholder {
  transform: perspective(900px) rotateX(2deg) rotateY(-1deg);
  box-shadow: 15px 18px 0 rgba(23,63,43,.14);
  background: #a5b328;
}

.future article:first-child:hover .gallery-action {
  opacity: 1;
  transform: translateY(0);
}

.future article:first-child:hover .gallery-placeholder i:nth-child(1) {
  transform: translate(20px,-12px) scale(1.12);
  border-radius: 42% 58% 64% 36%;
}

.future article:first-child:hover .gallery-placeholder i:nth-child(2) {
  transform: translate(-30px,-18px) scale(.88);
  border-radius: 58% 42% 38% 62%;
}

.future article:first-child:hover .gallery-placeholder i:nth-child(3) {
  transform: translate(-16px,16px) scale(1.15);
}

.future article:first-child:hover .gallery-placeholder b {
  transform: translateX(8px);
  color: var(--cream);
}

/* Encerramento: textura editorial sutil e interações de conexão. */
.closing {
  overflow: hidden;
  isolation: isolate;
  background-color: var(--sky);
  background-image:
    radial-gradient(circle at 12% 18%, rgba(247,244,236,.38) 0 1px, transparent 1.5px),
    radial-gradient(circle at 82% 72%, rgba(23,63,43,.2) 0 1px, transparent 1.5px),
    repeating-linear-gradient(118deg, transparent 0 58px, rgba(247,244,236,.07) 59px 60px);
  background-size: 22px 22px, 31px 31px, auto;
}


.closing h2,
.closing > p,
.closing div {
  position: relative;
  z-index: 1;
}

.closing h2 {
  transition: transform .45s cubic-bezier(.2,.8,.2,1), letter-spacing .45s ease;
}

.closing:hover h2 {
  transform: translateY(-7px);
  letter-spacing: -.075em;
}

.closing div span {
  transition: transform .35s cubic-bezier(.2,.8,.2,1), background .3s ease, color .3s ease, box-shadow .3s ease;
}

.closing div span:hover {
  transform: translateY(-7px) rotate(-2deg);
  background: var(--forest);
  color: var(--lime);
  box-shadow: 5px 6px 0 rgba(205,230,0,.42);
}

.closing div span:nth-of-type(even):hover {
  transform: translateY(-7px) rotate(2deg);
}

@keyframes closingTexture {
  to { transform: translate(22px,-15px) rotate(8deg) scale(1.035); }
}

@media (prefers-reduced-motion: reduce) {
  .statement::after,
  .video-frame::after,
  .closing::before,
  .closing::after {
    animation: none;
  }
}

/* Hero: elementos gráficos ficam atrás do CTA e nunca bloqueiam o clique. */
.hero-copy {
  position: relative;
  isolation: isolate;
}

.hero-copy::before,
.hero-copy::after,
.hero-art,
.hero-art * {
  pointer-events: none;
}

.hero-copy .button {
  position: relative;
  z-index: 10;
  pointer-events: auto;
  isolation: isolate;
  outline: none;
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, background .3s ease, color .3s ease;
}

.hero-copy .button:hover {
  transform: translateY(-5px) scale(1.025);
  background: var(--lime);
  color: var(--forest);
  box-shadow: 8px 10px 0 rgba(23,63,43,.18);
}

.hero-copy .button:focus-visible {
  box-shadow: 0 0 0 4px var(--cream), 0 0 0 7px var(--forest);
}

.hero-copy .button span {
  transition: transform .3s ease;
}

.hero-copy .button:hover span {
  transform: translate(3px,3px);
}

/* Patrocinadores e apoiadores 2026. */
.sponsors {
  position: relative;
  overflow: hidden;
  background: var(--lime);
  color: var(--cream);
}

.sponsors::before {
  content: "";
  position: absolute;
  width: 620px;
  height: 620px;
  right: -340px;
  top: -360px;
  border: 70px solid rgba(23, 63, 43, .20);
  border-radius: 50%;
  box-shadow:
    0 0 0 34px rgba(23, 63, 43, .12),
    0 0 0 68px rgba(23, 63, 43, .06);
}

.sponsors-head {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: .45fr 1.15fr .7fr;
  gap: 24px;
  align-items: end;
  margin-bottom: 75px;
}

.sponsors-head .section-label {
  color: rgba(247,244,236,.58);
  align-self: start;
}

.sponsors-head .kicker {
  grid-column: 2;
  margin-bottom: 8px;
}

.sponsors-head h2 {
  grid-column: 2;
}

.sponsors-head > p:last-child {
  grid-column: 3;
  line-height: 1.5;
  margin: 0;
}

.sponsor-group {
  position: relative;
  z-index: 1;
  margin-top: 42px;
}

.sponsor-group-title {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(247,244,236,.28);
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
}

.sponsor-group-title small {
  color: var(--lime);
  font-size: 9px;
}

.logo-grid {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.logo-grid.institutional { grid-template-columns: repeat(3,1fr); }
.logo-grid.supporters { grid-template-columns: repeat(6,1fr); }

.logo-placeholder {
  min-height: 190px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
  background: var(--cream);
  color: var(--forest);
  border: 1px solid transparent;
  transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, background .35s ease, color .35s ease;
}

.logo-placeholder::after {
  content: "";
  position: absolute;
  width: 120px;
  height: 120px;
  right: -55px;
  top: -58px;
  border: 18px solid var(--lime);
  border-radius: 50%;
  transition: transform .5s ease;
}

.logo-placeholder i {
  font-style: normal;
  font-size: 9px;
  font-weight: 800;
}

.logo-placeholder b {
  font-size: clamp(18px,2vw,29px);
  line-height: .95;
}

.logo-placeholder span {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.logo-placeholder.compact {
  min-height: 145px;
  padding: 18px;
}

.logo-placeholder.compact b { font-size: 16px; }

.logo-placeholder:hover {
  z-index: 2;
  transform: translateY(-9px) rotate(-.5deg);
  background: var(--lime);
  box-shadow: 10px 13px 0 rgba(149,188,204,.34);
}

.logo-placeholder:nth-child(even):hover { transform: translateY(-9px) rotate(.5deg); }
.logo-placeholder:hover::after { transform: scale(1.22) rotate(20deg); }

@media (max-width: 900px) {
  .sponsors-head { grid-template-columns: 1fr; }
  .sponsors-head .kicker,
  .sponsors-head h2,
  .sponsors-head > p:last-child { grid-column: 1; }
  .logo-grid.supporters { grid-template-columns: repeat(3,1fr); }
}

@media (max-width: 620px) {
  .logo-grid.institutional,
  .logo-grid.supporters { grid-template-columns: 1fr 1fr; }
  .sponsor-group-title { flex-direction: column; }
}

/* Quatro pilares: um gesto visual próprio para cada tema. */
.pillar {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transform-origin: bottom center;
  transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease, border-color .35s ease, color .35s ease, background .35s ease;
}

.pillar::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -45%;
  background: linear-gradient(115deg, transparent 35%, rgba(205,230,0,.28) 48%, transparent 61%);
  transform: translateX(-75%) rotate(8deg);
  transition: transform .75s cubic-bezier(.2,.8,.2,1);
}

.pillar > b {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  transition: transform .4s ease, background .3s ease, color .3s ease;
}

.pillar > div {
  width: fit-content;
  transform-origin: center;
  transition: transform .5s cubic-bezier(.2,.8,.2,1), filter .35s ease;
}

.pillar h3,
.pillar p {
  transition: transform .4s cubic-bezier(.2,.8,.2,1), color .3s ease;
}

.pillar:hover {
  transform: translateY(-14px) rotate(-.6deg);
  border-color: var(--forest);
  box-shadow: 12px 16px 0 rgba(23,63,43,.13);
}

.pillar:nth-child(even):hover {
  transform: translateY(-14px) rotate(.6deg);
}

.pillar:hover::after {
  transform: translateX(72%) rotate(8deg);
}

.pillar:hover > b {
  transform: rotate(360deg);
  background: var(--forest);
  color: var(--lime);
}

.pillar:hover h3 {
  transform: translateX(7px);
}

.pillar:hover p {
  transform: translateX(5px);
}

.pillar:nth-child(1):hover > div {
  transform: translate(14px,-14px) scale(1.14);
  filter: drop-shadow(-7px 8px 0 rgba(205,230,0,.58));
}

.pillar:nth-child(2):hover > div {
  animation: pillarPulse 1.1s ease-in-out infinite alternate;
}

.pillar:nth-child(3):hover > div {
  animation: pillarOrbit 2.8s linear infinite;
  color: var(--lime);
}

.pillar:nth-child(4):hover > div {
  animation: pillarSpark 1.2s ease-in-out infinite alternate;
  color: var(--olive);
}

.pillar:nth-child(1):hover { background: #fbfaf5; }
.pillar:nth-child(2):hover { background: #d8ef16; }
.pillar:nth-child(3):hover { background: #1d5138; }
.pillar:nth-child(4):hover { background: #f2f6e4; }

@keyframes pillarPulse {
  to { transform: scale(1.18); filter: drop-shadow(0 0 12px rgba(23,63,43,.25)); }
}

@keyframes pillarOrbit {
  to { transform: rotate(360deg); }
}

@keyframes pillarSpark {
  to { transform: rotate(12deg) scale(1.22); filter: drop-shadow(0 0 10px rgba(205,230,0,.75)); }
}

@media (prefers-reduced-motion: reduce) {
  .pillar:nth-child(2):hover > div,
  .pillar:nth-child(3):hover > div,
  .pillar:nth-child(4):hover > div {
    animation: none;
  }
}

@media (max-width: 980px) {
  .vision {
    min-height: 620px;
    padding-right: 38vw;
  }

  .vision-copy {
    width: 50vw;
  }

  .vision::before {
    width: 34vw;
    right: 4vw;
  }
}

@media (max-width: 720px) {
  .vision {
    min-height: auto;
    padding-right: 6vw;
    padding-bottom: 440px;
  }


  .vision-copy {
    width: 100%;
  }

  .vision > div:not(.section-label) h2 {
    max-width: none;
  }

  .vision::before {
    width: min(78vw, 430px);
    right: 50%;
    top: auto;
    bottom: 80px;
    translate: 50% 0;
  }

  .vision::after {
    right: 50%;
    bottom: 56px;
    translate: 50% 0;
    white-space: nowrap;
  }
}
