.link-avanca {
  display: inline-flex;
  align-items: center;
  gap: var(--e-2);
  font-size: var(--t-sm);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--marca);
}
.link-avanca .icone {
  width: 1.05em; height: 1.05em;
  transition: transform var(--dur-rapido) var(--ease-out);
}
.link-avanca:hover .icone { transform: translateX(5px); }
.card .link-avanca::after { content: ""; position: absolute; inset: 0; }
.btn-icone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--borda-forte);
  border-radius: var(--r-redondo);
  color: var(--texto);
  background: transparent;
  transition: background-color var(--dur-rapido) var(--ease-out),
              color var(--dur-rapido) var(--ease-out),
              border-color var(--dur-rapido) var(--ease-out),
              opacity var(--dur-rapido) var(--ease-out);
}
.btn-icone .icone { width: 1.15rem; height: 1.15rem; }
.btn-icone:hover:not(:disabled) {
  background: var(--terra-700);
  border-color: var(--terra-700);
  color: var(--papel-50);
}
.btn-icone:disabled { opacity: 0.3; cursor: not-allowed; }
.hero {
  position: relative;
  display: grid;
  align-items: end;
  min-height: 100svh;
  padding-top: clamp(6rem, 14vh, 9rem);
  padding-bottom: clamp(4rem, 10vh, 8rem);
  overflow: clip;
  isolation: isolate;
  background: var(--grafite-1000);
  color: var(--papel-50);
}
.hero__ceu {
  position: absolute;
  inset: 0;
  z-index: -5;
  background:
    radial-gradient(120% 80% at 50% 108%, color-mix(in oklab, var(--terra-800) 85%, transparent) 0%, transparent 62%),
    linear-gradient(to bottom,
      #0b0f14 0%, #16202a 26%, #3a3140 48%,
      #6b3b34 68%, #96513a 82%, #b4633f 100%);
}
.hero__quadro {
  position: absolute;
  inset: 0;
  z-index: -4;
  overflow: hidden;
  pointer-events: none;
}
.hero:has(.hero__quadro[data-tem-midia="sim"]) .hero__serras { display: none; }
.hero:has(.hero__quadro[data-tem-midia="sim"]) .hero__ceu { opacity: 0.45; }
.hero__midia {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: var(--foco, 50% 50%);
  scale: var(--zoom, 1.08);
  filter: saturate(0.95) contrast(1.06) blur(var(--desfoque, 3px));
  opacity: 0;
  transition: opacity var(--dur-cinema) var(--ease-out);
}
.hero__midia[data-pronto="sim"] { opacity: 0.92; }
@media (min-width: 64rem) {
  .hero--retrato { align-items: center; }
  .hero--retrato .hero__conteudo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 22rem);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: center;
  }
  .hero--retrato .hero__quadro {
    position: relative;
    inset: auto;
    z-index: 1;
    aspect-ratio: 9 / 16;
    max-height: 64svh;
    width: 100%;
    margin-inline: auto;
    border-radius: var(--r-xl);
    border: 1px solid color-mix(in oklab, var(--papel-50) 16%, transparent);
    box-shadow: 0 48px 90px -28px rgba(0, 0, 0, 0.85),
                0 8px 24px rgba(0, 0, 0, 0.4);
    pointer-events: auto;
  }
  .hero--retrato .hero__midia { filter: saturate(0.98) contrast(1.02); }
  .hero--retrato .hero__midia[data-pronto="sim"] { opacity: 1; }
  .hero--retrato .hero__quadro::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(160deg,
      rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0) 32%);
  }
  .hero--retrato .hero__rolar { display: none; }
}
.hero__serras { position: absolute; inset: 0; z-index: -3; pointer-events: none; }
.hero__serra {
  position: absolute;
  left: -5%; right: -5%; bottom: 0;
  width: 110%;
  height: auto;
  will-change: transform;
  translate: 0 var(--parallax, 0px);
}
.hero__serra--3 { color: #2c2f3a; opacity: 0.95; bottom: 14%; }
.hero__serra--2 { color: #1d2028; opacity: 0.97; bottom: 6%; }
.hero__serra--1 { color: #0e1013; bottom: -1%; }
.hero__grao {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: var(--grao);
  opacity: 0.5;
  mix-blend-mode: overlay;
  pointer-events: none;
}
.hero__base {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(to top,
      var(--grafite-1000) 0%,
      rgba(10, 10, 10, 0.72) 22%,
      rgba(10, 10, 10, 0) 56%),
    linear-gradient(to right,
      rgba(8, 8, 10, 0.93) 0%,
      rgba(8, 8, 10, 0.86) 26%,
      rgba(8, 8, 10, 0.52) 48%,
      rgba(8, 8, 10, 0.12) 72%,
      rgba(8, 8, 10, 0) 88%),
    linear-gradient(rgba(10, 10, 12, 0.22), rgba(10, 10, 12, 0.22));
  pointer-events: none;
}
@media (max-width: 64rem) {
  .hero__base {
    background:
      linear-gradient(to top,
        var(--grafite-1000) 0%,
        rgba(8, 8, 10, 0.95) 42%,
        rgba(8, 8, 10, 0.88) 64%,
        rgba(8, 8, 10, 0.66) 77%,
        rgba(8, 8, 10, 0.30) 90%,
        rgba(8, 8, 10, 0.10) 100%);
  }
  .hero__midia { object-position: 50% 42% !important; }
  .hero__titulo,
  .hero__lema,
  .hero__frase {
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7), 0 2px 22px rgba(0, 0, 0, 0.85);
  }
}
.hero__conteudo { z-index: 1; }
.hero__texto { min-width: 0; }
@media (min-width: 64rem) {
  .hero__texto { max-width: min(46rem, 66vw); }
}
.hero__olho {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-largo);
  text-transform: uppercase;
  color: var(--areia-300);
  margin-bottom: var(--e-4);
}
.hero__olho::before {
  content: "";
  width: clamp(1.5rem, 6vw, 3.5rem);
  height: 1px;
  background: currentColor;
  flex: none;
}
.hero__titulo {
  font-size: clamp(2.75rem, 7.6vw, 8.5rem);
  font-weight: 300;
  line-height: var(--leading-apertado);
  letter-spacing: var(--tracking-display);
  margin-bottom: var(--e-5);
  hyphens: none;
  overflow-wrap: normal;
}
.hero__linha { display: block; overflow: hidden; }
.hero__linha > span {
  display: block;
  transform: translateY(102%);
  transition: transform var(--dur-cinema) var(--ease-out);
  transition-delay: var(--atraso, 0ms);
}
.hero[data-entrou="sim"] .hero__linha > span { transform: translateY(0); }
html:not([data-revelar-ativo]) .hero__linha > span { transform: none; }
.hero__titulo em {
  font-style: normal;
  font-weight: 600;
  color: var(--areia-200);
}
.hero__lema {
  font-family: var(--fonte-serif);
  font-size: var(--t-xl);
  font-style: italic;
  font-weight: 300;
  letter-spacing: 0.02em;
  color: var(--areia-300);
  margin-top: calc(var(--e-4) * -1);
  margin-bottom: var(--e-5);
  padding-left: 0.12em;
}
.hero__frase {
  font-size: var(--t-md);
  line-height: var(--leading-solto);
  color: color-mix(in oklab, var(--papel-50) 82%, transparent);
  max-width: 34ch;
  margin-bottom: var(--e-6);
}
.hero__acoes { display: flex; flex-wrap: wrap; gap: var(--e-3); }
@media (max-width: 64rem) {
  .hero { align-content: end; }
}
.hero__rolar {
  position: absolute;
  right: var(--gutter);
  bottom: 5.5rem;
  z-index: 2;
  display: none;
  writing-mode: vertical-rl;
  align-items: center;
  gap: var(--e-3);
  font-size: 0.625rem;
  letter-spacing: var(--tracking-xlargo);
  text-transform: uppercase;
  color: color-mix(in oklab, var(--papel-50) 60%, transparent);
  text-decoration: none;
}
@media (min-width: 62rem) { .hero__rolar { display: flex; } }
.hero__rolar-trilho {
  width: 1px;
  height: 4.5rem;
  background: color-mix(in oklab, var(--papel-50) 22%, transparent);
  position: relative;
  overflow: hidden;
}
.hero__rolar-trilho::after {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 40%;
  background: var(--areia-300);
  animation: desce 2.6s var(--ease-inout) infinite;
}
@keyframes desce {
  0%   { transform: translateY(-100%); }
  55%  { transform: translateY(250%); }
  100% { transform: translateY(250%); }
}
.hero__rolar:hover { color: var(--papel-50); }
.descobrir { display: grid; gap: var(--e-4); }
@media (min-width: 46rem) {
  .descobrir { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 68rem) {
  .descobrir {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 15rem;
  }
  .descobrir > :nth-child(1) { grid-column: span 4; grid-row: span 2; }
  .descobrir > :nth-child(2) { grid-column: span 2; }
  .descobrir > :nth-child(3) { grid-column: span 2; }
  .descobrir > :nth-child(4) { grid-column: span 3; }
  .descobrir > :nth-child(5) { grid-column: span 3; }
}
.card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 15rem;
  padding: var(--e-5);
  overflow: hidden;
  isolation: isolate;
  border-radius: var(--r-lg);
  background: var(--grafite-900);
  color: var(--papel-50);
  text-decoration: none;
  transition: transform var(--dur-normal) var(--ease-out),
              box-shadow var(--dur-normal) var(--ease-out);
}
.card:hover, .card:focus-visible { transform: translateY(-4px); box-shadow: var(--sombra-4); }
.card__img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.05);
  transform: scale(1.02);
  transition: filter var(--dur-lento) var(--ease-out),
              transform var(--dur-lento) var(--ease-arq);
}
.card:hover .card__img, .card:focus-visible .card__img {
  filter: grayscale(0) contrast(1);
  transform: scale(1.07);
}
.card__vazio {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(80% 70% at 20% 10%, color-mix(in oklab, var(--tom, var(--terra-700)) 80%, transparent), transparent 70%),
    linear-gradient(150deg, var(--grafite-900), var(--grafite-1000));
}
.card__vazio::after {
  content: "";
  position: absolute; inset: 0;
  background-image: var(--grao);
  opacity: 0.45;
  mix-blend-mode: overlay;
}
.card__veu {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(to top,
    rgba(10, 10, 10, 0.88) 0%, rgba(10, 10, 10, 0.45) 40%, rgba(10, 10, 10, 0.05) 100%);
  transition: opacity var(--dur-normal) var(--ease-out);
}
.card__indice {
  position: absolute;
  top: var(--e-5); left: var(--e-5);
  font-family: var(--fonte-mono);
  font-size: var(--t-xs);
  letter-spacing: 0.1em;
  color: color-mix(in oklab, var(--papel-50) 55%, transparent);
}
.card__titulo {
  font-size: var(--t-lg);
  color: var(--papel-50);
  margin-bottom: 0.35rem;
}
.card--grande .card__titulo { font-size: var(--t-xl); }
.card__desc {
  font-size: var(--t-sm);
  color: color-mix(in oklab, var(--papel-50) 78%, transparent);
  max-width: 34ch;
}
@media (min-width: 68rem) and (hover: hover) {
  .card__desc {
    opacity: 0;
    transform: translateY(6px);
    transition: opacity var(--dur-rapido) var(--ease-out) 60ms,
                transform var(--dur-rapido) var(--ease-out) 60ms;
  }
  .card:hover .card__desc, .card:focus-visible .card__desc { opacity: 1; transform: none; }
}
.card__meta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: var(--e-3);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--areia-300);
}
.card__meta .icone { width: 0.9rem; height: 0.9rem; transition: transform var(--dur-rapido) var(--ease-out); }
.card:hover .card__meta .icone { transform: translateX(4px); }
.trilho-envelope { position: relative; }
.trilho {
  display: flex;
  gap: var(--e-5);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding-block: var(--e-6) var(--e-8);
  padding-inline: max(var(--gutter), (100vw - var(--largura-max)) / 2 + var(--gutter));
}
.trilho::-webkit-scrollbar { display: none; }
.trilho::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: calc(var(--e-6) + 1.9rem);
  height: 1px;
  background: linear-gradient(to right, transparent, var(--borda-forte) 4%, var(--borda-forte) 96%, transparent);
  pointer-events: none;
}
.marco {
  position: relative;
  flex: 0 0 min(19rem, 78vw);
  scroll-snap-align: center;
  padding-top: 3.5rem;
}
.marco::before {
  content: "";
  position: absolute;
  top: 1.55rem; left: 0;
  width: 0.7rem; height: 0.7rem;
  border-radius: var(--r-redondo);
  background: var(--bg);
  border: 2px solid var(--marca);
  transition: transform var(--dur-rapido) var(--ease-out),
              background-color var(--dur-rapido) var(--ease-out);
}
.marco:hover::before { transform: scale(1.5); background: var(--marca); }
.marco--estimado::before { border-style: dashed; border-color: var(--destaque); }
.marco__ano {
  font-family: var(--fonte-serif);
  font-size: var(--t-xl);
  font-weight: 600;
  color: var(--marca);
  line-height: 1;
  margin-bottom: var(--e-3);
  font-variant-numeric: tabular-nums;
}
.marco__titulo { font-size: var(--t-base); font-family: var(--fonte-sans); font-weight: 600; margin-bottom: 0.35rem; }
.marco__txt { font-size: var(--t-sm); color: var(--texto-suave); }
.trilho-controles { display: flex; gap: var(--e-2); }
.visite { display: grid; gap: var(--e-7); }
@media (min-width: 60rem) { .visite { grid-template-columns: 1fr 1fr; gap: var(--e-9); } }
.mapa-embed {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-2);
  background: var(--bg-afundado);
}
.mapa-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  filter: saturate(0.82) contrast(1.03);
}
.mapa-slot {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--borda);
  background:
    repeating-linear-gradient(0deg, transparent, transparent 2.5rem,
      color-mix(in oklab, var(--serra-600) 12%, transparent) 2.5rem, color-mix(in oklab, var(--serra-600) 12%, transparent) calc(2.5rem + 1px)),
    repeating-linear-gradient(90deg, transparent, transparent 2.5rem,
      color-mix(in oklab, var(--serra-600) 12%, transparent) 2.5rem, color-mix(in oklab, var(--serra-600) 12%, transparent) calc(2.5rem + 1px)),
    var(--papel-50);
  display: grid;
  place-content: center;
  gap: var(--e-3);
  text-align: center;
  padding: var(--e-6);
  color: var(--texto-tenue);
  font-size: var(--t-sm);
}
.mapa-slot .icone { width: 2rem; height: 2rem; margin-inline: auto; opacity: 0.45; }
.idealizadores__linhas { display: grid; gap: var(--e-10); margin-top: var(--e-8); }
.idealizadores__linha { display: grid; gap: var(--e-6); }
@media (min-width: 54rem) {
  .idealizadores__linha { grid-template-columns: minmax(14rem, 34%) 1fr; align-items: center; gap: var(--e-9); }
  .idealizadores__linha--inverso { grid-template-columns: 1fr minmax(14rem, 34%); }
}
.idealizadores__moldura {
  aspect-ratio: 3 / 4;
  max-width: 22rem;
  margin-inline: auto;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: linear-gradient(150deg, var(--areia-800), var(--grafite-900));
  display: grid;
  place-items: center;
  box-shadow: var(--sombra-2);
}
@media (min-width: 54rem) { .idealizadores__moldura { margin-inline: 0; } }
.idealizadores__moldura .icone { width: 2.5rem; height: 2.5rem; opacity: 0.4; color: var(--papel-50); }
.idealizadores__img { width: 100%; height: 100%; object-fit: cover; }
.idealizadores__nome {
  font-size: var(--t-xl);
  color: var(--marca);
  margin-bottom: var(--e-4);
}
.idealizadores__apelido { font-size: var(--t-sm); font-weight: 400; color: var(--texto-tenue); }
.idealizadores__apelido::before { content: " · "; }
.idealizadores__texto p {
  max-width: var(--largura-texto);
  color: var(--texto-suave);
  font-size: 0.9375rem;
  line-height: var(--leading-solto);
}
.idealizadores__texto p + p { margin-top: var(--e-5); }
.idealizadores__mais {
  margin-top: var(--e-8);
  font-size: var(--t-sm);
  color: var(--texto-tenue);
  border-left: 2px solid var(--borda-forte);
  padding-left: var(--e-4);
  max-width: var(--largura-texto);
}
.loader {
  position: fixed;
  inset: 0;
  z-index: var(--z-loader);
  display: grid;
  place-content: center;
  gap: var(--e-5);
  background: var(--grafite-1000);
  color: var(--papel-50);
  text-align: center;
  transition: opacity var(--dur-lento) var(--ease-out), visibility var(--dur-lento);
}
.loader[data-saindo="sim"] { opacity: 0; visibility: hidden; }
.loader__selo { width: 3.2rem; height: 3.2rem; margin-inline: auto; color: var(--terra-400); }
.loader__nome {
  font-family: var(--fonte-serif);
  font-size: var(--t-lg);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--areia-200);
}
.loader__trilho {
  width: min(14rem, 60vw);
  height: 1px;
  margin-inline: auto;
  background: var(--borda-inversa);
  overflow: hidden;
}
.loader__trilho::after {
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  background: var(--areia-300);
  transform-origin: left;
  animation: carrega 900ms var(--ease-inout) forwards;
}
@keyframes carrega { from { transform: scaleX(0); } to { transform: scaleX(1); } }