/* ============================================================
   VISTA TAÍBA — Home Nova · design editorial cinematográfico
   Paleta: areia #F5F5F0 · tinta #16130F · mocha #42392D · ouro #D5B996 · noite #0E0C0A
   Type: Syne (display) · Jost (texto)
   ============================================================ */

:root {
  --sand: #F5F5F0;
  --ink: #16130F;
  --mocha: #42392D;
  --gold: #D5B996;
  --gold-deep: #D6955C;
  --night: #0E0C0A;
  --line: rgba(22, 19, 15, 0.14);
  --font-display: 'Syne', sans-serif;
  --font-body: 'Jost', sans-serif;
  --gutter: clamp(1.25rem, 4vw, 4rem);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: auto; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }

body {
  background: var(--night); /* animado via JS conforme o scroll (fundo fluido) */
  color: var(--ink);
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

::selection { background: var(--gold); color: var(--night); }

::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--night); }
::-webkit-scrollbar-thumb { background: var(--mocha); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--gold); }

/* ---------- Preloader (ref. Aya Sophia) ---------- */
#vt-loader {
  position: fixed; inset: 0; z-index: 100;
  background: var(--night); color: var(--sand);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  transition: transform 1.05s cubic-bezier(0.77, 0, 0.18, 1), visibility 1.05s;
}
#vt-loader.is-leaving { transform: translateY(-100%); }
#vt-loader.is-done { transform: translateY(-100%); visibility: hidden; pointer-events: none; }
.vt-loader-inner { width: min(760px, 86vw); }
.vt-loader-strip {
  display: flex; gap: 6px;
  height: min(320px, 40vh);
  overflow: hidden;
}
.vt-loader-col { flex: 1; overflow: hidden; }
.vt-loader-col img {
  width: 100%; height: 100%; object-fit: cover;
  transform: translateY(103%);
  transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}
.vt-loader-col.is-in img { transform: translateY(0); }
#vt-loader.is-leaving .vt-loader-col img { transform: translateY(-103%); transition-delay: 0s !important; }
.vt-loader-progress {
  display: flex; align-items: center; gap: 1.4rem;
  margin-top: 1.6rem;
}
#vt-loader .vt-loader-mark {
  font-family: var(--font-display); font-weight: 700;
  font-size: 0.85rem; letter-spacing: 0.34em; text-transform: uppercase;
  white-space: nowrap;
}
#vt-loader .vt-loader-bar {
  flex: 1; height: 1px;
  background: rgba(245,245,240,0.18); overflow: hidden;
}
#vt-loader .vt-loader-bar i {
  display: block; height: 100%; width: 100%;
  background: var(--gold);
  transform: scaleX(0); transform-origin: left center;
  transition: transform 0.25s ease;
}
#vt-loader .vt-loader-pct {
  font-size: 0.72rem; letter-spacing: 0.2em;
  color: rgba(245,245,240,0.7);
  min-width: 3.2em; text-align: right;
  font-variant-numeric: tabular-nums;
}
#vt-loader .vt-loader-sub {
  margin-top: 0.9rem;
  font-size: 0.62rem; letter-spacing: 0.32em;
  text-transform: uppercase; color: rgba(245,245,240,0.4);
}

/* ---------- Transição de página (cortina) ---------- */
.vt-curtain {
  position: fixed; inset: 0; z-index: 200;
  background: var(--night);
  display: grid; place-items: center;
  transform: translateY(100%);
  pointer-events: none;
  will-change: transform;
}
.vt-curtain span {
  font-family: var(--font-display); font-weight: 700;
  font-size: 0.85rem; letter-spacing: 0.42em; text-indent: 0.42em; text-transform: uppercase;
  color: var(--gold); opacity: 0; transition: opacity 0.3s ease 0.15s;
}
.vt-curtain.is-in { transform: translateY(0); transition: transform 0.55s cubic-bezier(0.77, 0, 0.18, 1); }
.vt-curtain.is-in span { opacity: 1; }
.vt-curtain.is-cover { transform: translateY(0); }
.vt-curtain.is-out { transform: translateY(-100%); transition: transform 0.7s cubic-bezier(0.77, 0, 0.18, 1) 0.1s; }
@media (prefers-reduced-motion: reduce) { .vt-curtain { display: none; } }

/* ---------- Cursor (desktop) ---------- */
#vt-cursor {
  position: fixed; top: 0; left: 0; z-index: 99;
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--gold);
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: width 0.3s ease, height 0.3s ease, opacity 0.3s ease;
  mix-blend-mode: difference;
  opacity: 0;
}
body.vt-cursor-on #vt-cursor { opacity: 1; }
#vt-cursor.is-link { width: 42px; height: 42px; }
@media (pointer: coarse) { #vt-cursor { display: none; } }

/* ---------- Header ---------- */
.vt-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.4rem var(--gutter);
  transition: background 0.5s ease, padding 0.5s ease, box-shadow 0.5s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.vt-header.is-hidden { transform: translateY(-110%); }
.vt-header .vt-logo {
  font-family: var(--font-display); font-weight: 700;
  letter-spacing: 0.34em; text-indent: 0.34em; text-transform: uppercase;
  font-size: 0.95rem; color: var(--sand);
  transition: color 0.5s ease;
}
.vt-header-right { display: flex; align-items: center; gap: 1.6rem; }
.vt-talk {
  font-family: var(--font-display); font-weight: 700;
  font-size: 0.92rem; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--sand); position: relative;
  transition: color 0.5s ease;
}
.vt-talk::after {
  content: ''; position: absolute; left: 0; bottom: -6px;
  width: 100%; height: 2px; background: currentColor;
}
.vt-cta {
  border: 1px solid var(--gold);
  color: var(--gold) !important;
  padding: 0.68em 1.6em; border-radius: 100px;
  transition: background 0.4s ease, color 0.4s ease !important;
}
.vt-cta:hover { background: var(--gold); color: var(--night) !important; }

body.vt-scrolled .vt-header {
  background: rgba(245, 245, 240, 0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding: 0.9rem var(--gutter);
  box-shadow: 0 1px 0 var(--line);
}
body.vt-scrolled .vt-header .vt-logo,
body.vt-scrolled .vt-header .vt-talk { color: var(--ink); }

.vt-burger {
  display: grid; place-items: center; align-content: center; gap: 6px;
  width: 46px; height: 40px; background: none; border: 0; cursor: pointer;
}
.vt-burger i {
  width: 30px; height: 2px; background: var(--sand);
  transition: background 0.4s, transform 0.4s;
}
body.vt-scrolled .vt-burger i { background: var(--ink); }

/* ---------- Menu overlay (ref. Brisify) ---------- */
.vt-menu {
  position: fixed; inset: 0; z-index: 60;
  display: grid; grid-template-columns: 1fr 1fr;
  opacity: 0; visibility: hidden;
  /* fechamento: overlay espera a cascata dos links sair antes de sumir */
  transition: opacity 0.45s ease 0.32s, visibility 0.45s 0.32s;
}
body.vt-menu-open .vt-menu { opacity: 1; visibility: visible; transition-delay: 0s, 0s; }
.vt-menu-left {
  background: #F0EBE2;
  padding: clamp(2rem, 6vh, 5rem) clamp(2rem, 5vw, 5rem);
  display: flex; flex-direction: column; justify-content: space-between;
  overflow-y: auto;
}
.vt-menu-nav { display: flex; flex-direction: column; gap: 1.15rem; }
.vt-menu-nav a {
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(2.5rem, 6.4vh, 4.4rem); line-height: 1.08;
  letter-spacing: -0.01em;
  color: #8F8577;
  display: inline-flex; align-items: center; gap: 1.2rem;
  width: fit-content;
  opacity: 0; transform: translateY(52px); filter: blur(7px);
  transition: color 0.35s ease, opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), filter 0.55s ease;
}
/* Cascata de SAÍDA (estado fechado): de cima para baixo, rápida */
.vt-menu-nav a:nth-child(1) { transition-delay: 0s; }
.vt-menu-nav a:nth-child(2) { transition-delay: 0.04s; }
.vt-menu-nav a:nth-child(3) { transition-delay: 0.08s; }
.vt-menu-nav a:nth-child(4) { transition-delay: 0.12s; }
.vt-menu-nav a:nth-child(5) { transition-delay: 0.16s; }
.vt-menu-nav a:nth-child(6) { transition-delay: 0.20s; }
body.vt-menu-open .vt-menu-nav a { opacity: 1; transform: translateY(0); filter: blur(0); }
/* Cascata de ENTRADA */
body.vt-menu-open .vt-menu-nav a:nth-child(1) { transition-delay: 0.10s; }
body.vt-menu-open .vt-menu-nav a:nth-child(2) { transition-delay: 0.16s; }
body.vt-menu-open .vt-menu-nav a:nth-child(3) { transition-delay: 0.22s; }
body.vt-menu-open .vt-menu-nav a:nth-child(4) { transition-delay: 0.28s; }
body.vt-menu-open .vt-menu-nav a:nth-child(5) { transition-delay: 0.34s; }
body.vt-menu-open .vt-menu-nav a:nth-child(6) { transition-delay: 0.40s; }
.vt-menu-nav a:hover, .vt-menu-nav a.is-active { color: var(--ink); }
.vt-menu-arrow { font-family: var(--font-body); font-weight: 400; font-size: 0.7em; }
.vt-menu-foot {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: 0.85rem; letter-spacing: 0.06em; color: #8F8577;
}
.vt-menu-foot a { color: inherit; transition: color 0.3s ease; }
.vt-menu-foot a:hover { color: var(--ink); }
.vt-menu-foot i { font-style: normal; font-size: 0.6rem; }
.vt-menu-right {
  position: relative;
  background: #0B0906;
  padding: clamp(2rem, 6vh, 4.5rem) clamp(2rem, 4.5vw, 4.5rem);
  display: flex; flex-direction: column; justify-content: center; gap: clamp(1.6rem, 4vh, 3rem);
  overflow-y: auto;
}
.vt-menu-right > * {
  opacity: 0; transform: translateY(26px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
body.vt-menu-open .vt-menu-right > * { opacity: 1; transform: translateY(0); }
body.vt-menu-open .vt-menu-right > *:nth-child(1) { transition-delay: 0.25s; }
body.vt-menu-open .vt-menu-right > *:nth-child(2) { transition-delay: 0.35s; }
body.vt-menu-open .vt-menu-right > *:nth-child(3) { transition-delay: 0.45s; }
body.vt-menu-open .vt-menu-right > *:nth-child(4) { transition-delay: 0.55s; }
.vt-menu-close {
  position: absolute; top: 1.6rem; right: var(--gutter);
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: 0.78rem; letter-spacing: 0.1em;
  background: var(--gold); color: var(--night);
  border: 0; cursor: pointer;
  padding: 0.6em 1.2em; border-radius: 6px;
  display: inline-flex; align-items: center; gap: 0.5em;
  transition: background 0.3s ease;
}
.vt-menu-close:hover { background: var(--sand); }
.vt-menu-brand { display: flex; align-items: center; gap: 1.6rem; color: var(--sand); }
.vt-menu-badge {
  width: clamp(90px, 14vh, 130px); height: clamp(90px, 14vh, 130px);
  border: 1.5px solid rgba(245,245,240,0.85); border-radius: 50%;
  display: grid; place-items: center;
}
.vt-menu-badge span {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.6rem, 3.4vh, 2.4rem); letter-spacing: 0.04em;
}
.vt-menu-word {
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(1.8rem, 4.2vh, 3rem); letter-spacing: 0.02em;
}
.vt-menu-banner {
  border-radius: 22px; overflow: hidden;
  height: clamp(120px, 19vh, 180px);
}
.vt-menu-banner img { width: 100%; height: 100%; object-fit: cover; }
.vt-menu-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; }
.vt-menu-social { display: flex; gap: 0.8rem; }
.vt-menu-social a {
  width: 52px; height: 52px;
  border: 1.5px solid var(--gold); border-radius: 14px;
  display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 700; font-size: 0.85rem;
  color: var(--gold);
  transition: background 0.3s ease, color 0.3s ease;
}
.vt-menu-social a:hover { background: var(--gold); color: var(--night); }
.vt-menu-loc { text-align: right; color: var(--gold); }
.vt-menu-loc h5 {
  font-family: var(--font-body); font-weight: 500; font-size: 0.72rem;
  letter-spacing: 0.28em; text-transform: uppercase; color: rgba(245,245,240,0.6);
  margin-bottom: 0.6rem;
}
.vt-menu-loc p {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(0.95rem, 2vh, 1.2rem); line-height: 1.35;
}
@media (max-width: 900px) {
  .vt-menu { grid-template-columns: 1fr; grid-template-rows: auto 1fr; overflow-y: auto; }
  .vt-menu-left { order: 2; }
  .vt-menu-right { order: 1; padding-top: 5rem; gap: 1.4rem; }
  .vt-menu-brand { display: none; }
  .vt-menu-banner { display: none; }
  .vt-talk { display: none; }
}

/* ---------- Ato I · filme guiado por scroll ---------- */
.vt-film { position: relative; height: 560vh; }
.vt-film-stage { position: sticky; top: 0; height: 100vh; overflow: hidden; }
.vt-film-stage video,
.vt-film-stage .vt-film-canvas {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  background: var(--night);
}
.vt-film-stage .vt-film-overlay {
  position: absolute; inset: 0;
  background:
    radial-gradient(120% 90% at 50% 50%, rgba(14,12,10,0) 40%, rgba(14,12,10,0.55) 100%),
    linear-gradient(180deg, rgba(14,12,10,0.55) 0%, rgba(14,12,10,0.3) 45%, rgba(14,12,10,0.66) 100%);
}
.vt-film-grain {
  position: absolute; inset: -100px; pointer-events: none;
  opacity: 0.22; mix-blend-mode: overlay;
  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='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E");
  animation: vt-grain 0.9s steps(3) infinite;
}
@keyframes vt-grain {
  0% { transform: translate(0, 0); }
  33% { transform: translate(-40px, 24px); }
  66% { transform: translate(28px, -36px); }
  100% { transform: translate(0, 0); }
}

.vt-chapter {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: center;
  padding: 0 var(--gutter);
  color: var(--sand);
  opacity: 0; visibility: hidden;
  will-change: opacity, transform;
}
.vt-chapter .vt-kicker {
  display: inline-flex; align-items: center; gap: 0.9rem;
  font-size: clamp(0.68rem, 1vw, 0.8rem); font-weight: 600;
  letter-spacing: 0.42em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 1.6rem;
  text-shadow: 0 2px 14px rgba(10,8,5,0.8);
}
.vt-chapter .vt-kicker::before {
  content: ''; width: 2.4rem; height: 1px; background: var(--gold);
  box-shadow: 0 0 12px rgba(213,185,150,0.6);
}
.vt-chapter--center .vt-kicker::after {
  content: ''; width: 2.4rem; height: 1px; background: var(--gold);
  box-shadow: 0 0 12px rgba(213,185,150,0.6);
}
.vt-chapter h1, .vt-chapter h2 {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(2.4rem, 7.2vw, 6.4rem);
  line-height: 0.98; letter-spacing: -0.02em;
  text-transform: uppercase; max-width: 12ch;
  text-shadow: 0 2px 10px rgba(10,8,5,0.5), 0 14px 60px rgba(10,8,5,0.55);
}
.vt-chapter p {
  margin-top: 1.9rem; max-width: 42ch;
  font-size: clamp(1.1rem, 1.7vw, 1.45rem);
  font-weight: 400; line-height: 1.65;
  color: rgba(250, 249, 245, 0.98);
  text-shadow: 0 1px 3px rgba(10,8,5,0.85), 0 8px 36px rgba(10,8,5,0.7);
}
.vt-chapter--center { align-items: center; text-align: center; }
.vt-chapter--center h1, .vt-chapter--center h2 { max-width: 16ch; }
.vt-chapter--right { align-items: flex-end; text-align: right; }

/* Scrim local: reforça o contraste exatamente onde o texto está */
.vt-chapter::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(14,12,10,0.55) 0%, rgba(14,12,10,0.22) 42%, rgba(14,12,10,0) 68%);
}
.vt-chapter--right::before {
  background: linear-gradient(270deg, rgba(14,12,10,0.55) 0%, rgba(14,12,10,0.22) 42%, rgba(14,12,10,0) 68%);
}
.vt-chapter--center::before {
  background: radial-gradient(60% 55% at 50% 52%, rgba(14,12,10,0.5) 0%, rgba(14,12,10,0.18) 60%, rgba(14,12,10,0) 100%);
}

.vt-film-progress {
  position: absolute; left: var(--gutter); bottom: 2.2rem; z-index: 5;
  display: flex; align-items: center; gap: 1rem;
  color: rgba(245,245,240,0.6);
  font-size: 0.66rem; letter-spacing: 0.3em; text-transform: uppercase;
}
.vt-film-progress .vt-film-track {
  width: clamp(90px, 16vw, 220px); height: 1px;
  background: rgba(245,245,240,0.2);
}
.vt-film-progress .vt-film-track i {
  display: block; height: 100%; width: 100%;
  background: var(--gold);
  transform: scaleX(0); transform-origin: left center;
}

.vt-scrollhint {
  position: absolute; right: var(--gutter); bottom: 2.2rem; z-index: 5;
  display: flex; align-items: center; gap: 0.8rem;
  color: rgba(245,245,240,0.6);
  font-size: 0.66rem; letter-spacing: 0.3em; text-transform: uppercase;
}
.vt-scrollhint .vt-scrollhint-line {
  width: 1px; height: 44px; overflow: hidden;
  background: rgba(245,245,240,0.2); position: relative;
}
.vt-scrollhint .vt-scrollhint-line::after {
  content: ''; position: absolute; left: 0; top: -100%;
  width: 100%; height: 100%; background: var(--gold);
  animation: vt-drop 2s cubic-bezier(0.77, 0, 0.18, 1) infinite;
}
@keyframes vt-drop { 0% { top: -100%; } 55% { top: 0; } 100% { top: 100%; } }

/* ---------- Seções claras (fundo vem do body, animado no scroll) ---------- */
.vt-light { background: transparent; position: relative; z-index: 2; }

/* Manifesto */
.vt-manifesto { padding: clamp(7rem, 14vh, 11rem) var(--gutter); }
.vt-manifesto .vt-kicker-row {
  display: flex; align-items: center; gap: 1.2rem; margin-bottom: 3rem;
}
.vt-kicker-row .vt-kicker-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold-deep); }
.vt-kicker-row span {
  font-size: 0.72rem; font-weight: 500; letter-spacing: 0.38em; text-transform: uppercase;
  color: var(--mocha);
}
.vt-manifesto h2 {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1.7rem, 4.4vw, 3.9rem);
  line-height: 1.18; letter-spacing: -0.015em;
  max-width: 24ch; text-transform: uppercase;
}
.vt-manifesto h2 .w { display: inline-block; opacity: 0.12; transition: opacity 0.4s ease; }
.vt-manifesto h2 em { font-style: normal; color: var(--gold-deep); }
.vt-manifesto .vt-manifesto-foot {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-top: 4rem; gap: 2rem; flex-wrap: wrap;
}
.vt-manifesto .vt-manifesto-foot p { max-width: 40ch; color: var(--mocha); font-size: 1.02rem; }

/* Marquee */
.vt-marquee {
  overflow: hidden; white-space: nowrap;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  padding: 1.1rem 0; background: transparent;
}
.vt-marquee .vt-marquee-inner { display: inline-flex; animation: vt-marquee 38s linear infinite; }
.vt-marquee span {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(1rem, 2vw, 1.5rem); letter-spacing: 0.18em;
  color: transparent; -webkit-text-stroke: 1px rgba(22,19,15,0.4);
  padding: 0 1.6rem;
}
.vt-marquee span b { font-weight: 700; color: var(--gold-deep); -webkit-text-stroke: 0; }
@keyframes vt-marquee { to { transform: translateX(-50%); } }

/* ---------- A Casa · galeria horizontal ---------- */
.vt-casa { position: relative; }
.vt-casa .vt-casa-head {
  padding: clamp(6rem, 12vh, 9rem) var(--gutter) 3rem;
  display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap;
}
.vt-casa .vt-casa-head h2,
.vt-section-title {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(2.2rem, 6vw, 5rem);
  line-height: 1; letter-spacing: -0.025em; text-transform: uppercase;
}
.vt-casa .vt-casa-head p { max-width: 34ch; color: var(--mocha); }

.vt-hscroll { overflow: hidden; }
.vt-htrack {
  display: flex; gap: clamp(1rem, 2.5vw, 2.4rem);
  padding: 0 var(--gutter) clamp(5rem, 10vh, 8rem);
  width: max-content;
}
.vt-room {
  position: relative; overflow: hidden;
  width: clamp(260px, 30vw, 420px);
  flex: none; border-radius: 2px;
  background: var(--mocha);
}
.vt-room .vt-room-media { aspect-ratio: 3 / 4; overflow: hidden; }
.vt-room img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}
.vt-room:hover img { transform: scale(1.0); }
.vt-room .vt-room-info {
  position: absolute; inset: auto 0 0 0;
  padding: 1.4rem 1.5rem;
  background: linear-gradient(0deg, rgba(14,12,10,0.82), transparent);
  color: var(--sand);
  display: flex; justify-content: space-between; align-items: center;
}
.vt-room .vt-room-info h3 {
  font-family: var(--font-display); font-weight: 600;
  font-size: 1.05rem; letter-spacing: 0.06em; text-transform: uppercase;
}
.vt-room .vt-room-info span {
  font-size: 0.62rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold);
}
.vt-room .vt-room-num {
  position: absolute; top: 1.1rem; left: 1.3rem;
  font-family: var(--font-display); font-weight: 700; font-size: 0.8rem;
  letter-spacing: 0.2em; color: rgba(245,245,240,0.85);
}

/* ---------- Experiências ---------- */
.vt-exp { background: transparent; color: var(--sand); padding: clamp(6rem, 12vh, 10rem) var(--gutter); }
.vt-exp .vt-kicker-row span { color: var(--gold); }
.vt-exp-list { margin-top: 3.5rem; border-top: 1px solid rgba(245,245,240,0.12); }
.vt-exp-item {
  display: grid;
  grid-template-columns: 5rem 1fr 1.2fr auto;
  gap: 2rem; align-items: center;
  padding: 2.6rem 0;
  border-bottom: 1px solid rgba(245,245,240,0.12);
  transition: padding-left 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.vt-exp-item:hover { padding-left: 1.4rem; }
.vt-exp-item .vt-exp-num {
  font-family: var(--font-display); font-weight: 700; font-size: 0.85rem;
  letter-spacing: 0.2em; color: var(--gold);
}
.vt-exp-item h3 {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1.4rem, 2.8vw, 2.2rem);
  text-transform: uppercase; letter-spacing: -0.01em;
}
.vt-exp-item p { color: rgba(245,245,240,0.6); max-width: 46ch; font-size: 0.98rem; }
.vt-exp-item .vt-exp-arrow {
  width: 46px; height: 46px; border: 1px solid rgba(245,245,240,0.25);
  border-radius: 50%; display: grid; place-items: center;
  transition: background 0.4s ease, transform 0.4s ease;
}
.vt-exp-item:hover .vt-exp-arrow { background: var(--gold); color: var(--night); transform: rotate(45deg); }

/* ---------- Quando ir · gráfico de vento anual ---------- */
.vt-wind-year { position: relative; z-index: 2; padding: clamp(5rem, 11vh, 8rem) var(--gutter); }
.vt-wy-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; margin-bottom: 2.6rem; }
.vt-wy-head p { max-width: 40ch; color: var(--mocha); }
.vt-wy-card { position: relative; background: var(--night); color: var(--sand); border-radius: 24px; padding: clamp(1.4rem, 3vw, 2.6rem) clamp(1.2rem, 3vw, 2.6rem) clamp(1rem, 2vw, 1.6rem); overflow: hidden; }
.vt-wy-top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.vt-wy-top .vt-wy-title { font-family: var(--font-display); font-weight: 700; font-size: clamp(1rem, 1.6vw, 1.3rem); text-transform: uppercase; letter-spacing: 0.04em; }
.vt-wy-top .vt-wy-meta { font-size: 0.66rem; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(245,245,240,0.5); }
.vt-wy-svg { width: 100%; height: auto; display: block; overflow: visible; }
.vt-wy-svg .grid line { stroke: rgba(245,245,240,0.09); stroke-width: 1; }
.vt-wy-svg .ylab { fill: rgba(245,245,240,0.45); font-family: var(--font-body); font-size: 11px; letter-spacing: 0.08em; }
.vt-wy-svg .bar { fill: rgba(245,245,240,0.10); transition: fill 0.4s ease; }
.vt-wy-svg .bar.is-best { fill: rgba(214,149,92,0.34); }
.vt-wy-svg .bar:hover, .vt-wy-svg .bar.is-on { fill: rgba(214,149,92,0.7); }
.vt-wy-svg .line { fill: none; stroke: var(--gold); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.vt-wy-svg .area { fill: url(#vt-wy-grad); opacity: 0; }
.vt-wy-svg .dot { fill: var(--night); stroke: var(--gold); stroke-width: 2; opacity: 0; }
.vt-wy-svg .mlab { fill: rgba(245,245,240,0.7); font-family: var(--font-body); font-size: 11px; font-weight: 500; letter-spacing: 0.16em; text-anchor: middle; }
.vt-wy-svg .mlab.is-best { fill: var(--gold); }
.vt-wy-tip { position: absolute; pointer-events: none; background: var(--gold); color: var(--night); border-radius: 10px; padding: 0.55rem 0.8rem; font-size: 0.8rem; line-height: 1.3; opacity: 0; transform: translate(-50%, -110%) translateY(6px); transition: opacity 0.25s ease, transform 0.25s ease; white-space: nowrap; }
.vt-wy-tip.is-on { opacity: 1; transform: translate(-50%, -110%); }
.vt-wy-tip b { font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; display: block; }
.vt-wy-foot { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 1.4rem; font-size: 0.86rem; color: rgba(245,245,240,0.65); }
.vt-wy-foot b { color: var(--gold); font-weight: 500; }
.vt-wy-legend { display: inline-flex; align-items: center; gap: 0.5rem; }
.vt-wy-legend i { width: 14px; height: 10px; border-radius: 2px; background: rgba(214,149,92,0.5); }
.vt-wy-status { font-size: 0.72rem; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(245,245,240,0.45); padding: 3rem 0; text-align: center; }
@media (max-width: 768px) { .vt-wy-svg .mlab { font-size: 9px; letter-spacing: 0.05em; } .vt-wy-svg .ylab { font-size: 9px; } }

/* ---------- Espaços · slides horizontais pinados (ref. Lone Pine) ---------- */
.vt-slides { position: relative; background: transparent; }
.vt-slides-stage { position: relative; height: 100vh; overflow: hidden; }
.vt-slides-track { display: flex; height: 100%; width: 300vw; will-change: transform; }
.vt-slide { position: relative; width: 100vw; height: 100%; flex: none; overflow: hidden; }
.vt-slide img { width: 100%; height: 100%; object-fit: cover; }
.vt-slide::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(14,12,10,0.34) 0%, rgba(14,12,10,0.08) 30%, rgba(14,12,10,0.28) 100%);
}
.vt-slide-label {
  position: absolute; top: 2.2rem; left: 2.4rem; z-index: 2;
  display: flex; align-items: center; gap: 0.55rem;
  color: var(--sand); font-size: 1.05rem; font-weight: 400;
  text-shadow: 0 2px 12px rgba(10,8,5,0.6);
}
.vt-slide-label::before {
  content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--sand);
  box-shadow: 0 2px 12px rgba(10,8,5,0.6);
}
.vt-slide-card {
  position: absolute; left: 4vw; bottom: 7vh; z-index: 3;
  width: min(560px, 86vw);
  background: #332B20;
  border-radius: 22px;
  padding: clamp(1.8rem, 3.2vw, 3rem);
  color: var(--sand);
  box-shadow: 0 30px 80px -30px rgba(10,8,5,0.6);
  will-change: transform;
}
.vt-slide-card h3 {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1.6rem, 2.6vw, 2.2rem); letter-spacing: -0.01em;
}
.vt-slide-card p {
  margin-top: 1.1rem; font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.65; color: rgba(245,245,240,0.88); font-weight: 300;
}
.vt-slide-card .vt-pill {
  display: inline-block; margin-top: 1.6rem;
  font-size: 0.78rem; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--sand); border: 1px solid rgba(245,245,240,0.5);
  padding: 0.85em 1.9em; border-radius: 100px;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
.vt-slide-card .vt-pill:hover { background: var(--gold); border-color: var(--gold); color: var(--night); }

@media (max-width: 768px) {
  .vt-slides-stage { height: auto; overflow: visible; }
  .vt-slides-track { flex-direction: column; width: 100vw; height: auto; }
  .vt-slide { width: 100vw; height: 62vh; }
  .vt-slide-card { position: relative; left: auto; bottom: auto; margin: -3rem 4vw 3rem; width: auto; }
}

/* ---------- Profundidade · foto 3D (WebGL + depth map) ---------- */
.vt-depth { background: var(--sand); padding: clamp(6rem, 12vh, 9rem) var(--gutter); }
.vt-depth .vt-depth-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 2rem; flex-wrap: wrap; margin-bottom: 3rem;
}
.vt-depth .vt-depth-head p { max-width: 36ch; color: var(--mocha); }
.vt-depth-frame {
  position: relative; overflow: hidden; border-radius: 8px;
  height: min(80vh, 56vw); background: var(--night);
  box-shadow: 0 40px 90px -40px rgba(22,19,15,0.45);
}
#vt-depth-canvas { width: 100%; height: 100%; display: block; }
.vt-depth-frame .vt-depth-hint {
  position: absolute; left: 50%; bottom: 1.6rem; transform: translateX(-50%);
  color: rgba(245,245,240,0.85); font-size: 0.66rem;
  letter-spacing: 0.32em; text-transform: uppercase;
  padding: 0.7em 1.6em; border: 1px solid rgba(245,245,240,0.28);
  border-radius: 100px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  pointer-events: none; transition: opacity 1s ease;
}
.vt-depth-frame:hover .vt-depth-hint { opacity: 0; }
.vt-depth-frame.vt-depth-fallback::after {
  content: ''; position: absolute; inset: 0;
  background: url('https://vistataiba.com/wp-content/uploads/2025/11/CASA-TONY-46-scaled-e1764797819456.jpg') center/cover;
}
@media (pointer: coarse) { .vt-depth-frame .vt-depth-hint::after { content: ''; } }

/* ---------- Experiências · showcase sticky com card 3D (ref. Brisify) ---------- */
.vt-show { position: relative; z-index: 2; padding: clamp(5rem, 10vh, 8rem) var(--gutter) 0; }
.vt-show-head { margin-bottom: 2rem; }
.vt-show-head .vt-kicker-row { margin-bottom: 2rem; }
.vt-show-wrap { display: block; position: relative; }
.vt-show-sticky {
  position: sticky; top: 0; z-index: 0;
  height: 100vh;
  display: flex; align-items: center; justify-content: center;
  perspective: 1200px;
  pointer-events: none;
}
.vt-show-steps { position: relative; z-index: 1; margin-top: -100vh; }
.vt-show-content { width: min(520px, 42vw); }
.vt-show-step:nth-child(odd) .vt-show-content { margin-left: auto; }
.vt-show-step:nth-child(even) .vt-show-content { margin-left: 0; }
.vt-show-card {
  position: relative;
  width: clamp(260px, 26vw, 400px);
  aspect-ratio: 3 / 4.4;
  border-radius: 26px;
  overflow: hidden;
  transform: rotate(-7deg);
  box-shadow: 0 40px 90px -30px rgba(22, 19, 15, 0.35);
  will-change: transform;
  transform-style: preserve-3d;
}
.vt-show-card img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  opacity: 0;
}
.vt-show-card img.is-active { opacity: 1; }
.vt-show-step {
  min-height: 100vh;
  display: flex; flex-direction: column; justify-content: center;
  padding: 4rem 0;
}
.vt-show-step h3 {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.02; letter-spacing: -0.02em; text-transform: uppercase;
  max-width: 14ch;
}
.vt-show-step p {
  margin-top: 1.4rem; max-width: 46ch;
  color: var(--mocha); font-size: 1.05rem;
}
.vt-show-list { list-style: none; margin-top: 2rem; display: grid; gap: 0.95rem; }
.vt-show-list li {
  display: flex; align-items: center; gap: 0.85rem;
  font-size: 0.98rem; color: var(--ink);
}
.vt-show-list li::before {
  content: '✓';
  flex: none;
  width: 22px; height: 22px; border-radius: 50%;
  border: 1.4px solid var(--gold-deep);
  color: var(--gold-deep);
  font-size: 0.7rem; font-weight: 700;
  display: grid; place-items: center;
}
.vt-show-tags { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 2.2rem; }
.vt-show-tags span {
  font-family: var(--font-display); font-weight: 700;
  font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--mocha);
  background: rgba(22, 19, 15, 0.06);
  padding: 0.7em 1.3em; border-radius: 4px;
}
@media (max-width: 900px) {
  .vt-show-sticky { position: relative; height: auto; padding: 1.2rem 0; }
  .vt-show-steps { margin-top: 0; }
  .vt-show-card { width: min(58vw, 300px); aspect-ratio: 3 / 3.6; }
  .vt-show-content { width: 100%; }
  .vt-show-step { min-height: 70vh; padding: 3rem 0; }
}

/* ---------- Um Dia na Vista Taíba · ciclo do dia guiado pelo scroll ---------- */
.vt-day { position: relative; z-index: 2; }
.vt-day-stage {
  position: relative; height: 100vh; overflow: hidden;
  background: #E9D3C2; /* amanhecer; animado via JS */
}
.vt-day-stars { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.vt-day-sun {
  position: absolute; z-index: 2; top: 0; left: 0;
  width: clamp(70px, 9vw, 130px); height: clamp(70px, 9vw, 130px);
  border-radius: 50%;
  background: radial-gradient(circle at 38% 35%, #FFE9C4, #F2B96B 62%, #E39B4A);
  box-shadow: 0 0 70px 18px rgba(242, 185, 107, 0.45);
  will-change: transform;
  transition: box-shadow 1s ease;
}
/* Lua: camada que revela por cima do sol quando anoitece */
.vt-day-sun::after {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  background:
    radial-gradient(circle at 62% 30%, rgba(160, 155, 143, 0.55) 0 9%, transparent 11%),
    radial-gradient(circle at 38% 58%, rgba(160, 155, 143, 0.45) 0 6%, transparent 8%),
    radial-gradient(circle at 70% 66%, rgba(160, 155, 143, 0.4) 0 5%, transparent 7%),
    radial-gradient(circle at 40% 35%, #F6F3EA, #CFCabc 62%, #A9A396);
  opacity: 0;
  transition: opacity 1.1s ease;
}
.vt-day-sun.is-moon { box-shadow: 0 0 55px 12px rgba(235, 232, 220, 0.28); }
.vt-day-sun.is-moon::after { opacity: 1; }
.vt-day-card {
  position: absolute; z-index: 3;
  right: clamp(1.5rem, 7vw, 8rem); top: 50%;
  transform: translateY(-50%) rotate(4deg);
  width: clamp(240px, 26vw, 420px);
  aspect-ratio: 3 / 4;
  border-radius: 26px; overflow: hidden;
  box-shadow: 0 40px 90px -30px rgba(20, 15, 8, 0.45);
}
.vt-day-card img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; opacity: 0;
  transition: opacity 0.6s ease;
}
.vt-day-card img.is-active { opacity: 1; }
.vt-day-chapter {
  position: absolute; z-index: 4;
  left: var(--gutter); top: 50%;
  transform: translateY(-50%);
  max-width: min(46ch, 44vw);
  color: var(--ink);
  opacity: 0; visibility: hidden;
  will-change: opacity, transform, filter;
}
.vt-day-chapter .vt-day-time {
  display: inline-flex; align-items: center; gap: 0.8rem;
  font-size: 0.7rem; font-weight: 600; letter-spacing: 0.38em;
  text-transform: uppercase; color: #A4642B;
  margin-bottom: 1.3rem;
}
.vt-day-chapter .vt-day-time::before { content: ''; width: 2.2rem; height: 1px; background: currentColor; }
.vt-day-chapter h3 {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(1.9rem, 4.2vw, 3.6rem);
  line-height: 1.14; letter-spacing: 0.01em; text-transform: uppercase;
  max-width: 15ch;
}
.vt-day-chapter p {
  margin-top: 1.3rem; font-size: clamp(1rem, 1.4vw, 1.2rem);
  line-height: 1.65; opacity: 0.82; max-width: 40ch;
}
.vt-day-chapter--night, .vt-day-chapter--night .vt-day-time { color: var(--sand); }
.vt-day-chapter--night .vt-day-time { color: var(--gold); }
.vt-day-clock {
  position: absolute; z-index: 4;
  left: var(--gutter); bottom: 2.2rem;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(2rem, 4.5vw, 3.6rem);
  letter-spacing: 0.02em; color: var(--ink);
  font-variant-numeric: tabular-nums;
  transition: color 0.6s ease;
}
.vt-day-meta {
  position: absolute; z-index: 4;
  right: var(--gutter); bottom: 2.4rem;
  text-align: right;
  font-size: 0.7rem; font-weight: 600; letter-spacing: 0.34em;
  text-transform: uppercase; color: rgba(22, 19, 15, 0.6);
  transition: color 0.6s ease;
}
.vt-day-meta b { display: block; font-size: 0.85rem; color: var(--ink); margin-top: 0.3rem; transition: color 0.6s ease; }
.vt-day-stage.is-night .vt-day-clock { color: var(--sand); }
.vt-day-stage.is-night .vt-day-meta { color: rgba(245, 245, 240, 0.55); }
.vt-day-stage.is-night .vt-day-meta b { color: var(--gold); }
@media (max-width: 900px) {
  .vt-day-card {
    right: 50%; transform: translate(50%, 0) rotate(4deg);
    top: auto; bottom: 16vh;
    width: min(52vw, 260px);
  }
  .vt-day-chapter { top: 18vh; transform: none; max-width: 88vw; }
  .vt-day-clock { bottom: 1.4rem; }
  .vt-day-meta { bottom: 1.6rem; }
}

/* ---------- Dia & Noite · toggle (ref. ALVEO/Framer) ---------- */
.vt-dn {
  position: relative; z-index: 2;
  background-color: #C8DCEA;
  color: var(--ink);
  padding: clamp(5rem, 11vh, 8rem) var(--gutter) clamp(6rem, 12vh, 9rem);
  text-align: center;
  transition: background-color 1.4s ease, color 1.4s ease;
  overflow: hidden;
}
.vt-dn.is-night { background-color: #0A1024; color: var(--sand); }
.vt-dn h2 {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(2rem, 4.8vw, 4rem);
  line-height: 1.12; letter-spacing: -0.015em;
  max-width: 22ch; margin: 0 auto;
}
.vt-dn-sub {
  margin: 1.4rem auto 0; max-width: none;
  font-size: clamp(1.1rem, 1.8vw, 1.5rem);
  opacity: 0.8;
}
@media (min-width: 769px) { .vt-dn-sub { white-space: nowrap; } }
.vt-dn-toggle-wrap { position: relative; display: inline-block; margin: 2.2rem auto 1.2rem; }
.vt-dn-pulse {
  position: absolute; inset: -6px;
  border-radius: 16px;
  border: 2px solid var(--gold-deep);
  opacity: 0; pointer-events: none;
}
.vt-dn-toggle {
  position: relative; z-index: 1;
  display: inline-flex; gap: 4px;
  padding: 5px;
  background: rgba(20, 24, 38, 0.55);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(245, 245, 240, 0.25);
  border-radius: 12px;
}
.vt-dn-hint {
  display: block; margin: 0 auto 2.4rem;
  font-size: 0.78rem; font-weight: 500;
  letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--gold-deep);
  min-height: 1.4em;
}
.vt-dn.is-night .vt-dn-hint { color: var(--gold); }
.vt-dn-hint span { display: inline-block; white-space: pre; }
.vt-dn-hint.is-done { transition: opacity 0.6s ease; opacity: 0; }
.vt-dn-toggle button {
  width: 46px; height: 38px;
  display: grid; place-items: center;
  background: transparent; border: 0; border-radius: 8px;
  color: rgba(245, 245, 240, 0.75);
  cursor: pointer;
  transition: background 0.4s ease, color 0.4s ease;
}
.vt-dn-toggle button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.vt-dn-toggle button.is-on { background: rgba(245, 245, 240, 0.28); color: #fff; }
.vt-dn-toggle button:hover { color: #fff; }
.vt-dn-media {
  position: relative;
  width: min(1080px, 94vw);
  aspect-ratio: 16 / 9;
  margin: 0 auto;
  border-radius: 24px; overflow: hidden;
  box-shadow: 0 50px 110px -40px rgba(10, 14, 30, 0.55);
}
.vt-dn-media img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 46%;
  opacity: 0; transition: opacity 1.4s ease;
}
.vt-dn-media img.is-active { opacity: 1; }

/* ---------- Momentos · galeria em marquee duplo ---------- */
.vt-gal { position: relative; z-index: 2; padding: clamp(4rem, 9vh, 7rem) 0 clamp(3rem, 6vh, 5rem); overflow: hidden; color: var(--sand); }
.vt-gal-head { padding: 0 var(--gutter); margin-bottom: 2.4rem; display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; }
.vt-gal-head .vt-kicker-row span { color: var(--gold); }
.vt-gal-head p { max-width: 34ch; color: rgba(245, 245, 240, 0.6); }
.vt-gal-row { display: flex; gap: clamp(0.7rem, 1.2vw, 1.1rem); width: max-content; padding: 0 0 clamp(0.7rem, 1.2vw, 1.1rem); animation: vt-gal-slide 60s linear infinite; }
.vt-gal-row--rev { animation-direction: reverse; animation-duration: 70s; }
.vt-gal:hover .vt-gal-row { animation-play-state: paused; }
.vt-gal-row a { position: relative; flex: none; width: clamp(200px, 22vw, 340px); aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; background: var(--mocha); }
.vt-gal-row a img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1), filter 0.6s ease; }
.vt-gal-row a:hover img { transform: scale(1.06); }
.vt-gal-row a span { position: absolute; left: 0.9rem; bottom: 0.7rem; color: var(--sand); font-size: 0.6rem; letter-spacing: 0.28em; text-transform: uppercase; text-shadow: 0 2px 10px rgba(10,8,5,0.7); opacity: 0; transition: opacity 0.4s ease; }
.vt-gal-row a:hover span { opacity: 1; }
@keyframes vt-gal-slide { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .vt-gal-row { animation: none; } }

/* ---------- Depoimentos ---------- */
.vt-quotes { padding: clamp(6rem, 13vh, 10rem) var(--gutter); text-align: center; }
.vt-quotes .vt-quotes-stage { position: relative; min-height: 15rem; margin-top: 3rem; }
.vt-quote { position: absolute; inset: 0; opacity: 0; visibility: hidden; }
.vt-quote blockquote {
  font-family: var(--font-display); font-weight: 500;
  font-size: clamp(1.3rem, 3vw, 2.3rem); line-height: 1.35;
  max-width: 34ch; margin: 0 auto; letter-spacing: -0.01em;
}
.vt-quote figcaption {
  margin-top: 1.8rem; font-size: 0.75rem;
  letter-spacing: 0.3em; text-transform: uppercase; color: var(--mocha);
}
.vt-quotes .vt-quote-dots { display: flex; gap: 0.6rem; justify-content: center; margin-top: 2.5rem; }
.vt-quotes .vt-quote-dots button {
  width: 26px; height: 2px; border: 0; cursor: pointer;
  background: rgba(22,19,15,0.18); transition: background 0.3s ease;
}
.vt-quotes .vt-quote-dots button.is-on { background: var(--gold-deep); }

/* ---------- Bento grid · a casa em detalhes ---------- */
.vt-bento { position: relative; z-index: 2; padding: clamp(4rem, 9vh, 7rem) var(--gutter); }
.vt-bento-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; margin-bottom: 2rem; }
.vt-bento-head p { max-width: 36ch; color: var(--mocha); }
.vt-bento-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(190px, auto);
  gap: clamp(0.8rem, 1.4vw, 1.2rem);
}
.vt-b {
  position: relative; overflow: hidden; border-radius: 22px;
  background: #EEEAE0; color: var(--ink);
  padding: 1.6rem 1.7rem;
  display: flex; flex-direction: column; justify-content: flex-end;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.5s ease;
}
.vt-b:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -30px rgba(22, 19, 15, 0.35); }
.vt-b--photo { grid-column: span 2; grid-row: span 2; padding: 0; background: var(--mocha); }
.vt-b--photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1); }
.vt-b--photo:hover img { transform: scale(1); }
.vt-b--photo .vt-b-cap {
  position: absolute; left: 1.6rem; bottom: 1.4rem; color: var(--sand);
  font-size: 0.66rem; letter-spacing: 0.3em; text-transform: uppercase;
  text-shadow: 0 2px 12px rgba(10,8,5,0.7);
}
.vt-b--dark { background: var(--night); color: var(--sand); }
.vt-b--gold { background: var(--gold); color: var(--night); }
.vt-b--wide { grid-column: span 2; }
.vt-b-label { font-size: 0.64rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; opacity: 0.6; margin-bottom: 0.6rem; }
.vt-b-num {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(2.2rem, 3.8vw, 3.6rem); line-height: 1; letter-spacing: -0.02em;
}
.vt-b-num small { font-size: 0.34em; font-weight: 600; letter-spacing: 0.1em; margin-left: 0.2em; }
.vt-b--dark .vt-b-num, .vt-b--dark .vt-b-sub b { color: var(--gold); }
.vt-b-sub { margin-top: 0.5rem; font-size: 0.92rem; opacity: 0.75; line-height: 1.5; }
.vt-b-live { position: absolute; top: 1.3rem; right: 1.4rem; display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.6rem; letter-spacing: 0.26em; text-transform: uppercase; color: rgba(245,245,240,0.55); }
.vt-b-live i { width: 7px; height: 7px; border-radius: 50%; background: #6FCF97; animation: ct-pulse 2s ease infinite; }
.vt-b-arrow { display: inline-block; transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1); }
.vt-b--map { background: #0A1024; color: var(--sand); }
.vt-b--map .vt-b-dot {
  position: absolute; top: 34%; left: 58%; width: 12px; height: 12px; border-radius: 50%;
  background: var(--gold-deep); box-shadow: 0 0 0 3px rgba(214,149,92,0.35);
  animation: vt-marker-pulse 1.8s ease infinite;
}
.vt-b--map .vt-b-grid {
  position: absolute; inset: 0; opacity: 0.18;
  background-image: linear-gradient(rgba(245,245,240,0.35) 1px, transparent 1px), linear-gradient(90deg, rgba(245,245,240,0.35) 1px, transparent 1px);
  background-size: 28px 28px;
}
.vt-b--map .vt-b-coast { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.5; }
.vt-b-link { margin-top: 0.8rem; font-size: 0.68rem; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold); width: fit-content; border-bottom: 1px solid var(--gold); }
.vt-b--quote blockquote { font-family: var(--font-display); font-weight: 500; font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.4; }
.vt-b--quote figcaption { margin-top: 0.8rem; font-size: 0.66rem; letter-spacing: 0.26em; text-transform: uppercase; opacity: 0.6; }
.vt-b--cta { justify-content: space-between; }
.vt-b--cta .vt-b-num { font-size: clamp(1.4rem, 2.2vw, 1.9rem); }
.vt-b--cta .vt-btn { background: var(--night); color: var(--sand); margin-top: 1rem; width: fit-content; }
@media (max-width: 900px) {
  .vt-bento-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: minmax(160px, auto); }
  .vt-b--photo { grid-column: span 2; grid-row: span 1; min-height: 260px; }
}

/* ---------- Stats · números que contam ---------- */
.vt-stats {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem;
  padding: clamp(4rem, 9vh, 7rem) var(--gutter);
}
.vt-stat { text-align: center; }
.vt-stat-num {
  display: block;
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(2.6rem, 6.5vw, 5.5rem); line-height: 1;
  color: var(--gold-deep); letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.vt-stat-label {
  display: block; margin-top: 0.9rem;
  font-size: 0.7rem; font-weight: 500; letter-spacing: 0.3em;
  text-transform: uppercase; color: var(--mocha);
}
@media (max-width: 768px) {
  .vt-stats { grid-template-columns: repeat(2, 1fr); gap: 2.5rem 1rem; }
}

/* ---------- Marquee gigante "RESERVE / AGORA" (ref. Kreme) ---------- */
.vt-kreme {
  display: block; position: relative; z-index: 2;
  padding: clamp(3rem, 7vh, 5rem) 0;
  overflow: hidden;
  color: rgba(66, 57, 45, 0.14);
  transition: color 0.5s ease;
}
.vt-kreme:hover { color: var(--gold-deep) !important; }
.vt-kreme-row { overflow: hidden; white-space: nowrap; }
.vt-kreme-track {
  display: inline-flex; align-items: center;
  gap: clamp(2rem, 4.5vw, 4.5rem);
  padding-right: clamp(2rem, 4.5vw, 4.5rem);
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(4.4rem, 15vw, 14rem);
  line-height: 0.95; letter-spacing: -0.02em;
  animation: vt-kreme-slide 26s linear infinite;
  will-change: transform;
}
.vt-kreme-row--rev .vt-kreme-track { animation-direction: reverse; animation-duration: 30s; }
.vt-kreme-track svg {
  width: 0.52em; height: 0.52em; flex: none;
  fill: currentColor;
}
@keyframes vt-kreme-slide { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .vt-kreme-track { animation: none; }
  .vt-kreme { color: var(--gold-deep); }
}

/* ---------- Zoom orbital · do espaço à Taíba ---------- */
.vt-zoom { position: relative; z-index: 2; }
.vt-zoom-stage { position: relative; height: 100vh; overflow: hidden; background: #04080F; }
.vt-zoom-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.vt-zoom-ground {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 50%;
  opacity: 0; transform: scale(1.28);
  will-change: opacity, transform;
}
.vt-zoom-flash {
  position: absolute; inset: 0; z-index: 2;
  background: #F5F1E6; opacity: 0; pointer-events: none;
}
.vt-zoom-vignette {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(120% 100% at 50% 50%, rgba(4,8,15,0) 55%, rgba(4,8,15,0.5) 100%);
}
.vt-zoom-head {
  position: absolute; top: 2.4rem; left: var(--gutter); z-index: 3;
  color: var(--sand);
}
.vt-zoom-head .vt-kicker-row span { color: var(--gold); }
.vt-zoom-head h2 {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 2.4rem);
  text-transform: uppercase; letter-spacing: -0.01em;
  text-shadow: 0 2px 14px rgba(4,8,15,0.8);
}
.vt-zoom-alt {
  position: absolute; left: var(--gutter); bottom: 2.2rem; z-index: 3;
  color: var(--sand);
  font-variant-numeric: tabular-nums;
}
.vt-zoom-alt b {
  display: block;
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(1.6rem, 3.4vw, 2.8rem); line-height: 1;
  text-shadow: 0 2px 14px rgba(4,8,15,0.8);
}
.vt-zoom-alt span {
  font-size: 0.64rem; font-weight: 500; letter-spacing: 0.3em;
  text-transform: uppercase; color: rgba(245,245,240,0.6);
}
.vt-zoom-marker {
  position: absolute; left: 50%; top: 50%; z-index: 3;
  transform: translate(-50%, -50%);
  opacity: 0; pointer-events: none;
}
.vt-zoom-marker i {
  display: block; width: 14px; height: 14px; border-radius: 50%;
  background: var(--gold-deep);
  box-shadow: 0 0 0 3px rgba(214,149,92,0.35), 0 2px 18px rgba(0,0,0,0.5);
  margin: 0 auto;
  animation: vt-marker-pulse 1.8s ease infinite;
}
@keyframes vt-marker-pulse {
  50% { box-shadow: 0 0 0 14px rgba(214,149,92,0.0), 0 2px 18px rgba(0,0,0,0.5); }
}
.vt-zoom-marker em {
  display: block; margin-top: 0.8rem;
  font-style: normal; font-family: var(--font-display); font-weight: 700;
  font-size: 0.85rem; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--sand); text-shadow: 0 2px 12px rgba(4,8,15,0.9);
  white-space: nowrap;
}
.vt-zoom-cta {
  position: absolute; right: var(--gutter); bottom: 2.2rem; z-index: 3;
  display: flex; flex-direction: column; align-items: flex-end; gap: 0.9rem;
}
.vt-zoom-cta .vt-btn { opacity: 0; transform: translateY(14px); transition: opacity 0.6s ease, transform 0.6s ease; pointer-events: none; }
.vt-zoom-stage.is-arrived .vt-zoom-cta .vt-btn { opacity: 1; transform: none; pointer-events: auto; }
.vt-zoom-credit {
  font-size: 0.56rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(245,245,240,0.4);
}

/* ---------- Ritual · três palavras gigantes (ref. ECHO/01) ---------- */
.vt-words { position: relative; background: transparent; color: var(--sand); }
.vt-wind { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.vt-word { z-index: 1; }
.vt-words-meta, .vt-words-foot { z-index: 2; }
.vt-words-stage {
  position: relative; height: 100vh; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.vt-words-meta {
  position: absolute; top: 2.4rem; left: var(--gutter); right: var(--gutter);
  display: flex; justify-content: space-between; gap: 2rem;
  font-size: 0.66rem; font-weight: 500; letter-spacing: 0.28em;
  text-transform: uppercase; color: rgba(245,245,240,0.55);
}
.vt-words-meta .vt-words-meta-l::before { content: '—— '; color: var(--gold); }
.vt-words-line {
  position: absolute; left: 0; right: 0; top: 50%; height: 1px;
  background: rgba(213,185,150,0.28);
  transform: scaleX(0.2); transform-origin: center;
}
.vt-word {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(5rem, 21vw, 19rem);
  line-height: 1; letter-spacing: 0.01em;
  opacity: 0; visibility: hidden;
  will-change: opacity, transform;
  user-select: none;
}
.vt-word.is-1 { color: var(--sand); }
.vt-word.is-2 { color: var(--gold-deep); }
.vt-word.is-3 { color: transparent; -webkit-text-stroke: 1.5px rgba(245,245,240,0.85); }
.vt-words-foot {
  position: absolute; left: var(--gutter); right: var(--gutter); bottom: 2.2rem;
  display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem;
  border-top: 1px solid rgba(245,245,240,0.12); padding-top: 1.6rem;
}
.vt-words-foot p {
  max-width: 40ch; font-size: 0.92rem;
  color: rgba(245,245,240,0.55);
}
.vt-words-counter {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1.6rem, 3vw, 2.4rem); letter-spacing: 0.02em;
  color: var(--sand); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.vt-words-counter span { color: rgba(245,245,240,0.45); }

/* ---------- CTA final ---------- */
.vt-cta-final {
  position: relative; min-height: 92vh;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; text-align: center; color: var(--sand);
}
.vt-cta-final .vt-cta-bg { position: absolute; inset: -18% 0; }
.vt-cta-final .vt-cta-bg img { width: 100%; height: 100%; object-fit: cover; }
.vt-cta-final .vt-cta-shade { position: absolute; inset: 0; background: rgba(14,12,10,0.55); }
.vt-cta-final .vt-cta-content { position: relative; z-index: 2; padding: 0 var(--gutter); }
.vt-cta-final h2 {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(2.6rem, 8vw, 7rem);
  line-height: 1; letter-spacing: -0.03em; text-transform: uppercase;
}
.vt-cta-final p {
  margin: 1.6rem auto 2.6rem; max-width: 46ch;
  color: rgba(245,245,240,0.85); font-size: clamp(1rem, 1.5vw, 1.2rem);
}
.vt-btn {
  display: inline-block;
  font-family: var(--font-body); font-weight: 500;
  font-size: 0.82rem; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--night); background: var(--gold);
  padding: 1.15em 2.6em; border-radius: 100px;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s ease;
}
.vt-btn:hover { transform: translateY(-3px); box-shadow: 0 18px 44px -14px rgba(213,185,150,0.55); }

/* ---------- Footer ---------- */
.vt-footer { background: var(--night); color: var(--sand); padding: clamp(4rem, 9vh, 7rem) var(--gutter) 2.4rem; overflow: hidden; }
.vt-footer .vt-footer-word {
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(3rem, 12.5vw, 12rem); line-height: 0.9; letter-spacing: -0.02em;
  white-space: nowrap; text-align: center;
  color: transparent; -webkit-text-stroke: 1px rgba(213,185,150,0.34);
  margin-bottom: clamp(3rem, 7vh, 5.5rem);
  user-select: none;
}
.vt-footer .vt-footer-grid {
  display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem;
  padding-bottom: 3.5rem; border-bottom: 1px solid rgba(245,245,240,0.12);
}
.vt-footer .vt-logo {
  font-family: var(--font-display); font-weight: 700;
  letter-spacing: 0.34em; text-indent: 0.34em; text-transform: uppercase; font-size: 1rem;
}
.vt-footer .vt-footer-tag { margin-top: 1.2rem; color: rgba(245,245,240,0.55); max-width: 30ch; font-size: 0.95rem; }
.vt-footer h4 {
  font-size: 0.68rem; font-weight: 500; letter-spacing: 0.34em;
  text-transform: uppercase; color: var(--gold); margin-bottom: 1.4rem;
}
.vt-footer ul { list-style: none; display: grid; gap: 0.7rem; }
.vt-footer ul a { color: rgba(245,245,240,0.72); font-size: 0.92rem; transition: color 0.3s ease; }
.vt-footer ul a:hover { color: var(--gold); }
.vt-footer .vt-footer-base {
  display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding-top: 2rem; font-size: 0.7rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: rgba(245,245,240,0.4);
}

/* ---------- Reveals ---------- */
[data-reveal] { opacity: 0; transform: translateY(46px); will-change: opacity, transform; }

/* ---------- Responsivo ---------- */
@media (max-width: 900px) {
  .vt-exp-item { grid-template-columns: 3rem 1fr auto; }
  .vt-exp-item p { grid-column: 2 / 3; grid-row: 2; }
  .vt-footer .vt-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .vt-film { height: 460vh; }
  .vt-hscroll { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .vt-hscroll::-webkit-scrollbar { display: none; }
  .vt-room { width: 74vw; }
}
body.vt-menu-open .vt-burger i:nth-child(1) { transform: translateY(4px) rotate(45deg); }
body.vt-menu-open .vt-burger i:nth-child(2) { transform: translateY(-4px) rotate(-45deg); }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; }
  .vt-marquee .vt-marquee-inner { animation: none; }
  .vt-scrollhint .vt-scrollhint-line::after { animation: none; }
}

/* Fallback sem GSAP: página estática porém completa */
body.vt-no-anim [data-reveal] { opacity: 1; transform: none; }
body.vt-no-anim .vt-film { height: 100vh; }
body.vt-no-anim .vt-chapter--first { opacity: 1; visibility: visible; }
body.vt-no-anim .vt-manifesto h2 .w { opacity: 1; }
body.vt-no-anim .vt-quote:first-child { opacity: 1; visibility: visible; }

/* ============================================================
   ESCALA TIPOGRÁFICA — textos maiores em todo o site (override global)
   Piso: nada abaixo de ~0.8rem. Parágrafos ~1.15–1.3rem.
   ============================================================ */
@media (min-width: 1024px) { html { font-size: 17px; } }
@media (min-width: 1600px) { html { font-size: 18px; } }

/* Parágrafos de seção e descrições */
.vt-manifesto .vt-manifesto-foot p, .vt-casa .vt-casa-head p, .vt-bento-head p, .vt-wy-head p,
.vt-gal-head p, .vt-show-step p, .vt-slide-card p, .vt-dn-sub, .vt-words-foot p, .vt-cta-final p,
.vt-footer .vt-footer-tag, .bn-hero-sub, .bn-step p, .ct-hero-sub, .ct-form-intro p,
.sb-hero-row p, .sb-value p, .sb-bleed-caption p, .am-intro p, .vt-quote figcaption,
.vt-chapter p, .vt-day-chapter p {
  font-size: clamp(1.1rem, 1.45vw, 1.3rem) !important;
  line-height: 1.6;
}
.vt-words-foot p, .vt-cta-final p, .sb-bleed-caption p { font-size: clamp(1.05rem, 1.4vw, 1.25rem) !important; }
.am-intro p { font-size: clamp(1.5rem, 2.9vw, 2.5rem) !important; line-height: 1.35; }

/* Kickers, rótulos, metas, legendas: piso de 0.82rem */
.vt-kicker-row span, .vt-chapter .vt-kicker, .vt-day-chapter .vt-day-time, .bn-hero-kicker,
.am-hero-kicker, .vt-b-label, .vt-b-live, .vt-wy-top .vt-wy-meta, .vt-words-meta,
.vt-film-progress, .vt-scrollhint, .vt-room .vt-room-info span, .vt-gal-row a span,
.vt-b-cap, .vt-b-link, .vt-menu-loc h5, .vt-zoom-alt span, .vt-zoom-credit,
.vt-day-meta, .vt-footer h4, .vt-footer .vt-footer-base, .ct-wind-head, .ct-wind-item span,
.ct-field label, .ct-map-card a, .am-nav-label, .vt-slide-label, .vt-dn-hint,
.sb-collage figcaption, .vt-stat-label, .vt-quotes .vt-quote figcaption {
  font-size: 0.82rem !important;
}
.vt-zoom-credit { font-size: 0.72rem !important; }
.vt-slide-label { font-size: 1.15rem !important; }

/* Listas, links e textos utilitários */
.vt-footer ul a, .vt-show-list li, .bn-info-item span, .ct-map-card p, .vt-b-sub,
.vt-wy-foot, .vt-menu-foot, .am-nav-name, .vt-day-meta b, .ct-form-direct a {
  font-size: 1.05rem !important;
}
.vt-show-tags span, .vt-header nav a, .vt-talk, .vt-btn, .bn-wa-btn, .vt-cta, .vt-slide-card .vt-pill, .vt-menu-close {
  font-size: 0.92rem !important;
}
.vt-footer .vt-footer-base { font-size: 0.82rem !important; }
.vt-b-num small { font-size: 0.42em !important; }

/* Gráfico de vento: rótulos legíveis */
.vt-wy-svg .ylab { font-size: 15px !important; }
.vt-wy-svg .mlab { font-size: 15px !important; }
.vt-wy-tip { font-size: 1rem !important; }
.vt-wy-tip b { font-size: 1.3rem !important; }
@media (max-width: 768px) {
  .vt-wy-svg .mlab, .vt-wy-svg .ylab { font-size: 22px !important; }
}

/* Formulário e campos */
.ct-field input, .ct-field select, .ct-field textarea { font-size: clamp(1.15rem, 1.6vw, 1.4rem) !important; }

/* Cards do bento e depoimentos */
.vt-b--quote blockquote { font-size: clamp(1.2rem, 1.6vw, 1.45rem) !important; }
.vt-quote blockquote { font-size: clamp(1.5rem, 3.2vw, 2.5rem) !important; }

/* ---------- Slides: card dinâmico por ambiente, contador e progresso ---------- */
.vt-slide img { transform: scale(1.08); transition: transform 1.6s cubic-bezier(0.22, 1, 0.36, 1); }
.vt-slide.is-active img { transform: scale(1); }
.vt-slides-progress {
  position: absolute; left: 2.4rem; bottom: 2.2rem; z-index: 4;
  display: flex; align-items: center; gap: 1rem; color: var(--sand);
}
.vt-slides-count { font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; letter-spacing: 0.06em; font-variant-numeric: tabular-nums; text-shadow: 0 2px 12px rgba(10,8,5,0.7); }
.vt-slides-count b { color: var(--gold); }
.vt-slides-progress i { display: block; width: clamp(90px, 14vw, 200px); height: 2px; background: rgba(245,245,240,0.25); border-radius: 2px; overflow: hidden; }
.vt-slides-progress i em { display: block; height: 100%; width: 100%; background: var(--gold); transform: scaleX(0.333); transform-origin: left center; transition: transform 0.4s ease; }
.vt-slide-card-in { transition: opacity 0.35s ease, transform 0.35s ease; }
.vt-slide-card-in.is-out { opacity: 0; transform: translateY(10px); }
.vt-slide-card-kicker { display: inline-flex; align-items: center; gap: 0.7rem; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.34em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.9rem; }
.vt-slide-card-kicker::before { content: ''; width: 1.8rem; height: 1px; background: var(--gold); }
@media (max-width: 768px) { .vt-slides-progress { display: none; } }

/* ---------- Gráficos animados: sparkline do vento, rota, arco do sol ---------- */
.vt-b-spark { width: 100%; height: 44px; margin-top: 0.9rem; overflow: visible; }
.vt-b-spark .sp-area { fill: url(#vt-sp-grad); opacity: 0; }
.vt-b-spark .sp-line { fill: none; stroke: var(--gold); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.vt-b-spark .sp-now { fill: var(--gold); }
.vt-b-spark-label { margin-top: 0.35rem; font-size: 0.72rem !important; letter-spacing: 0.26em; text-transform: uppercase; color: rgba(245,245,240,0.45); }
.vt-b-route { position: absolute; right: 1rem; top: 0.9rem; width: 58%; height: auto; opacity: 0.95; pointer-events: none; }
.vt-b-route text { font-family: var(--font-body); font-weight: 500; }

.vt-dn { position: relative; }
.vt-dn-stars { position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity 1.6s ease;
  background-image:
    radial-gradient(1.5px 1.5px at 12% 22%, rgba(245,245,240,0.9), transparent 60%),
    radial-gradient(1px 1px at 28% 12%, rgba(245,245,240,0.7), transparent 60%),
    radial-gradient(1.5px 1.5px at 44% 30%, rgba(245,245,240,0.8), transparent 60%),
    radial-gradient(1px 1px at 61% 16%, rgba(245,245,240,0.7), transparent 60%),
    radial-gradient(2px 2px at 73% 26%, rgba(245,245,240,0.9), transparent 60%),
    radial-gradient(1px 1px at 86% 10%, rgba(245,245,240,0.6), transparent 60%),
    radial-gradient(1.5px 1.5px at 92% 34%, rgba(245,245,240,0.8), transparent 60%),
    radial-gradient(1px 1px at 8% 48%, rgba(245,245,240,0.5), transparent 60%),
    radial-gradient(1.5px 1.5px at 52% 6%, rgba(245,245,240,0.8), transparent 60%),
    radial-gradient(1px 1px at 36% 44%, rgba(245,245,240,0.6), transparent 60%);
  animation: vt-twinkle 4s ease-in-out infinite alternate;
}
.vt-dn.is-night .vt-dn-stars { opacity: 1; }
@keyframes vt-twinkle { from { filter: brightness(0.7); } to { filter: brightness(1.3); } }
.vt-dn > * { position: relative; }
.vt-dn-sky { width: min(460px, 90vw); margin: 0 auto 2.2rem; }
.vt-dn-arc { width: 100%; height: auto; overflow: visible; display: block; }
.vt-dn-arc-base { fill: none; stroke: rgba(22,19,15,0.18); stroke-width: 1.5; stroke-dasharray: 3 6; transition: stroke 1.4s ease; }
.vt-dn.is-night .vt-dn-arc-base { stroke: rgba(245,245,240,0.25); }
.vt-dn-arc-lit { fill: none; stroke: var(--gold-deep); stroke-width: 2.5; stroke-linecap: round; }
.vt-dn-orb circle { fill: #F2B96B; transition: fill 1.4s ease; }
.vt-dn-orb .vt-dn-orb-halo { fill: rgba(242,185,107,0.22); animation: vt-orb-pulse 3s ease-in-out infinite; }
.vt-dn.is-night .vt-dn-orb circle { fill: #E8E4DA; }
.vt-dn.is-night .vt-dn-orb .vt-dn-orb-halo { fill: rgba(232,228,218,0.18); }
@keyframes vt-orb-pulse { 50% { transform: scale(1.35); opacity: 0.5; } }
.vt-dn-orb .vt-dn-orb-halo { transform-box: fill-box; transform-origin: center; }
.vt-dn-times { display: flex; justify-content: space-between; gap: 1rem; margin-top: 0.6rem; font-size: 0.85rem; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.7; }
.vt-dn-times b { font-family: var(--font-display); font-weight: 700; letter-spacing: 0.02em; font-variant-numeric: tabular-nums; }
.vt-dn-now b { color: var(--gold-deep); }
.vt-dn.is-night .vt-dn-now b { color: var(--gold); }
.vt-dn-media { transform-style: preserve-3d; transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); will-change: transform; }
.vt-dn-caption { margin-top: 1.4rem; font-size: 1.05rem; opacity: 0.7; }
@media (max-width: 768px) { .vt-b-route { display: none; } }

/* ---------- Manifesto · Bem-vindo v2 (duas colunas, foto parallax, selo, linhas de vento) ---------- */
.vt-manifesto { position: relative; overflow: hidden; }
.vt-mf-wind { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: 0.55; }
.vt-mf-wind path { fill: none; stroke: var(--gold-deep); stroke-width: 1.2; stroke-linecap: round; opacity: 0.55; }
.vt-mf-grid { position: relative; display: grid; grid-template-columns: 1.35fr 1fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.vt-mf-text .vt-manifesto-foot { margin-top: 3rem; }
.vt-mf-media { position: relative; margin: 0; }
.vt-mf-img { border-radius: 24px; overflow: hidden; aspect-ratio: 3 / 4; box-shadow: 0 40px 90px -40px rgba(22,19,15,0.45); }
.vt-mf-img img { width: 100%; height: 118%; object-fit: cover; transform: translateY(-8%); will-change: transform; }
.vt-mf-badge { position: absolute; left: -2.2rem; bottom: 2.4rem; width: clamp(120px, 12vw, 160px); height: clamp(120px, 12vw, 160px); border-radius: 50%; background: var(--night); display: grid; place-items: center; box-shadow: 0 20px 50px -20px rgba(10,8,5,0.6); }
.vt-mf-badge svg { position: absolute; inset: 8px; width: calc(100% - 16px); height: calc(100% - 16px); animation: ct-spin 18s linear infinite; }
.vt-mf-badge svg text { font-family: var(--font-body); font-size: 12.5px; font-weight: 500; letter-spacing: 0.3em; text-transform: uppercase; fill: var(--gold); }
.vt-mf-badge span { font-family: var(--font-display); font-weight: 800; font-size: 1.4rem; color: var(--sand); letter-spacing: 0.06em; }
.vt-mf-media figcaption { margin-top: 1rem; text-align: right; font-size: 0.82rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--mocha); }
@keyframes ct-spin { to { transform: rotate(360deg); } }
@media (max-width: 900px) {
  .vt-mf-grid { grid-template-columns: 1fr; }
  .vt-mf-media { max-width: 420px; margin: 1rem auto 0; }
  .vt-mf-badge { left: -0.6rem; bottom: 1.4rem; }
}
@media (prefers-reduced-motion: reduce) { .vt-mf-badge svg { animation: none; } }

/* Manifesto v2: frase mais compacta na coluna estreita */
.vt-mf-grid { grid-template-columns: 1.5fr 1fr; }
.vt-mf-text h2 { font-size: clamp(1.45rem, 2.9vw, 2.6rem) !important; line-height: 1.22; max-width: none; }
.vt-mf-wind path { stroke-width: 1.6; opacity: 0.75; }

/* ============================================================
   Método Perseverance — ef. 3 (névoa no cursor), 8 (marca-texto), 22 (credo)
   ============================================================ */

/* ef. 3 — névoa dourada que segue o ponteiro (só sobre fundo escuro) */
.vt-mist { position: absolute; left: 0; top: 0; width: 0; height: 0; pointer-events: none; z-index: 1; opacity: 0; transition: opacity 700ms ease; }
.vt-mist.is-on { opacity: 1; }
.vt-mist i {
  position: absolute; left: -340px; top: -340px; width: 680px; height: 680px; display: block;
  background:
    radial-gradient(32% 38% at 42% 46%, rgba(213,185,150,0.18), transparent 70%),
    radial-gradient(24% 30% at 62% 58%, rgba(243,216,142,0.10), transparent 70%),
    radial-gradient(42% 46% at 52% 36%, rgba(214,149,92,0.14), transparent 72%);
  filter: blur(34px); mix-blend-mode: screen;
  animation: vt-mist-a 11s ease-in-out infinite alternate;
}
.vt-mist i + i { scale: 1.3; opacity: 0.75; animation: vt-mist-b 16s ease-in-out infinite alternate; }
@keyframes vt-mist-a { from { transform: rotate(0deg) scale(1); } to { transform: rotate(42deg) scale(1.2); } }
@keyframes vt-mist-b { from { transform: rotate(28deg) scale(1.16); } to { transform: rotate(-24deg) scale(0.94); } }
.vt-words-stage .vt-mist { z-index: 0; }
@media (prefers-reduced-motion: reduce), (pointer: coarse) { .vt-mist { display: none; } }

/* ef. 8 — marca-texto que se desenha atrás das palavras-chave do manifesto */
.vt-manifesto h2 .w.mk { position: relative; z-index: 0; padding: 0 0.08em; }
.vt-manifesto h2 .w.mk::before {
  content: ''; position: absolute; inset: 0.1em -0.06em 0.02em; z-index: -1;
  background: linear-gradient(100deg, rgba(243,216,142,0.6), rgba(214,149,92,0.35));
  border-radius: 3px;
  transform: skewX(-6deg) scaleX(var(--p, 1)); transform-origin: left center;
}
.vt-manifesto.is-ride h2 .w.mk::before { --p: clamp(0, calc((var(--rp, 0) - var(--t, 0)) * 6), 1); }

/* ef. 22 — credo: sujeito fixo, predicados que ganham tinta, régua que enche */
.vt-creed { position: relative; z-index: 2; padding: clamp(6rem, 13vh, 10rem) var(--gutter); overflow: clip; }
.vt-creed-inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem clamp(40px, 6vw, 110px); align-items: start; }
@media (min-width: 901px) {
  .vt-creed-inner { grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); }
  .vt-creed-rail { position: sticky; top: 120px; }
}
.vt-creed-rail { display: grid; justify-items: start; }
.vt-creed-subject { font-family: var(--font-display); font-weight: 800; text-transform: uppercase; font-size: clamp(3rem, 7vw, 6.4rem); line-height: 0.92; letter-spacing: -0.03em; color: var(--ink); }
.vt-creed-meter { display: block; width: min(100%, 320px); height: 2px; margin-top: clamp(18px, 2.6vh, 28px); background: var(--line); }
.vt-creed-meter i { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--gold-deep), var(--gold)); transform: scaleX(var(--m, 1)); transform-origin: left; }
.vt-creed.is-ride .vt-creed-meter i { --m: clamp(0, calc((var(--rp, 0) - 0.02) * 1.25), 1); }
.vt-creed-list { list-style: none; margin: 0; padding: 0; display: grid; }
.vt-creed-line {
  position: relative; padding: clamp(18px, 2.6vh, 28px) 0 clamp(18px, 2.6vh, 28px) clamp(22px, 2.4vw, 34px);
  border-top: 1px solid var(--line);
  font-family: var(--font-display); font-weight: 500;
  font-size: clamp(1.35rem, 2.1vw, 2rem) !important; line-height: 1.3; letter-spacing: -0.01em; color: var(--ink); text-wrap: pretty;
  transition: opacity 320ms ease, color 320ms ease;
}
.vt-creed-line:last-child { border-bottom: 1px solid var(--line); }
.vt-creed-line::before { content: ''; position: absolute; left: 0; top: calc(clamp(18px, 2.6vh, 28px) + 0.62em); width: 12px; height: 2px; background: var(--gold-deep); transform: scaleX(var(--k, 1)); transform-origin: left; }
.vt-creed-line--last { font-weight: 700; }
.vt-creed-line--last a { color: var(--gold-deep); }
.vt-creed-line--last a span { display: inline-block; transition: transform 0.3s ease; }
.vt-creed-line--last a:hover span { transform: translateX(6px); }
.vt-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; white-space: nowrap; clip-path: inset(50%); }
.vt-creed.is-ride .vt-creed-line { --p: clamp(0, calc((var(--rp, 0) - var(--t, 0)) * 9), 1); --k: var(--p); opacity: calc(0.22 + 0.78 * var(--p)); transform: translateX(calc((1 - var(--p)) * 10px)); }
.vt-creed-list:has(.vt-creed-line:hover) .vt-creed-line:not(:hover) { opacity: 0.35; }
.vt-creed-line:hover { color: var(--gold-deep); }
@media (prefers-reduced-motion: reduce) { .vt-creed.is-ride .vt-creed-line { opacity: 1; transform: none; --k: 1; } .vt-creed.is-ride .vt-creed-meter i { --m: 1; } .vt-manifesto.is-ride h2 .w.mk::before { --p: 1; } }

/* ---------- A Casa v2: status do ambiente, numeral fantasma, descrições, Ken Burns ---------- */
.vt-casa .vt-casa-head { align-items: flex-end; }
.vt-casa .vt-casa-head .vt-kicker-row { margin-bottom: 1.2rem; }
.vt-hscroll { position: relative; }
.vt-casa-ghost {
  position: absolute; right: var(--gutter); top: -0.2em; z-index: 0; pointer-events: none;
  font-family: var(--font-display); font-weight: 800; line-height: 1;
  font-size: clamp(8rem, 26vw, 24rem); color: transparent;
  -webkit-text-stroke: 1.5px rgba(66, 57, 45, 0.16);
  font-variant-numeric: tabular-nums; user-select: none;
}
.vt-casa-status {
  position: relative; z-index: 2;
  display: flex; align-items: center; gap: 1.4rem;
  padding: 0 var(--gutter) 1.6rem;
}
.vt-casa-count { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; letter-spacing: 0.06em; color: var(--mocha); font-variant-numeric: tabular-nums; white-space: nowrap; }
.vt-casa-count b { color: var(--gold-deep); }
.vt-casa-name { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; font-size: clamp(1.3rem, 2.4vw, 2rem); letter-spacing: -0.01em; color: var(--ink); transition: opacity 0.3s ease, transform 0.3s ease; }
.vt-casa-name.is-out { opacity: 0; transform: translateY(8px); }
.vt-casa-bar { flex: 1; max-width: 260px; height: 2px; background: var(--line); border-radius: 2px; overflow: hidden; }
.vt-casa-bar em { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--gold-deep), var(--gold)); transform: scaleX(0.125); transform-origin: left center; transition: transform 0.35s ease; }
.vt-htrack { position: relative; z-index: 1; }
.vt-room .vt-room-info { align-items: flex-end; }
.vt-room .vt-room-info h3 { font-size: 1.25rem !important; }
.vt-room-desc { margin-top: 0.35rem; font-size: 0.98rem !important; color: rgba(245,245,240,0.8); max-width: 26ch; line-height: 1.4;
  opacity: 0; transform: translateY(8px); transition: opacity 0.45s ease, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); }
.vt-room:hover .vt-room-desc, .vt-room.is-active .vt-room-desc { opacity: 1; transform: none; }
.vt-room img { transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1), filter 0.6s ease; }
.vt-room.is-active img { transform: scale(1); }
.vt-room:not(.is-active):not(:hover) img { filter: saturate(0.85); }
@media (max-width: 768px) {
  .vt-casa-ghost { display: none; }
  .vt-casa-status { padding-bottom: 1rem; }
  .vt-casa-bar { display: none; }
  .vt-htrack { scroll-snap-type: x mandatory; }
  .vt-hscroll { scroll-snap-type: x mandatory; }
  .vt-room { scroll-snap-align: start; }
  .vt-room-desc { opacity: 1; transform: none; }
}

/* A Casa v2: o palco pinado respira abaixo do header fixo; numeral fantasma atrás dos cards */
@media (min-width: 769px) {
  .vt-hscroll { padding-top: 6.2rem; }
  .vt-casa-ghost { top: 3.4rem; right: calc(var(--gutter) - 0.04em); }
  .vt-htrack { padding-bottom: clamp(2rem, 5vh, 4rem); }
  .vt-room { width: clamp(240px, 26vw, 380px); }
}

/* ---------- Em detalhes: fundo vivo (luz derivando + contornos de duna + parallax) ---------- */
.vt-bento { position: relative; overflow: hidden; isolation: isolate; }
.vt-bento-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.vt-bento-head, .vt-bento-grid { position: relative; z-index: 1; }
.vt-bento-bg i {
  position: absolute; display: block; border-radius: 50%;
  filter: blur(70px); opacity: 0.75; will-change: transform;
  mix-blend-mode: multiply;
}
.vt-bb-1 { width: 46vw; height: 46vw; left: -12vw; top: -10vw; background: radial-gradient(circle, rgba(214,149,92,0.32), rgba(214,149,92,0) 65%); animation: vt-bb-a 26s ease-in-out infinite alternate; }
.vt-bb-2 { width: 40vw; height: 40vw; right: -10vw; top: 20%; background: radial-gradient(circle, rgba(140,190,214,0.30), rgba(140,190,214,0) 65%); animation: vt-bb-b 32s ease-in-out infinite alternate; }
.vt-bb-3 { width: 36vw; height: 36vw; left: 30%; bottom: -14vw; background: radial-gradient(circle, rgba(213,185,150,0.36), rgba(213,185,150,0) 65%); animation: vt-bb-c 38s ease-in-out infinite alternate; }
@keyframes vt-bb-a { to { transform: translate(14vw, 10vw) scale(1.18); } }
@keyframes vt-bb-b { to { transform: translate(-12vw, -8vw) scale(0.9); } }
@keyframes vt-bb-c { to { transform: translate(-16vw, -6vw) scale(1.12); } }
.vt-bento-dunes { position: absolute; inset: 0; width: 100%; height: 100%; }
.vt-bento-dunes path {
  fill: none; stroke: rgba(66, 57, 45, 0.16); stroke-width: 1.2;
  stroke-dasharray: 6 9; animation: vt-dune-flow 40s linear infinite;
}
.vt-bento-dunes path:nth-child(even) { animation-duration: 52s; animation-direction: reverse; stroke: rgba(214,149,92,0.22); }
@keyframes vt-dune-flow { to { stroke-dashoffset: -600; } }
.vt-bento-bg::after {
  content: ''; position: absolute; inset: 0; opacity: 0.35; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.18'/%3E%3C/svg%3E");
}
@media (prefers-reduced-motion: reduce) { .vt-bento-bg i, .vt-bento-dunes path { animation: none; } }
@media (max-width: 768px) { .vt-bento-bg i { filter: blur(50px); } }

/* Bento · card do vento: rótulo não invade o selo "ao vivo" */
.vt-b--dark .vt-b-label { padding-right: 6.5rem; }
.vt-b-live { top: 1.5rem; }

/* ---------- Experiências v2: etiqueta no card, trilho de progresso, numeral, cascata ---------- */
.vt-show-card { box-shadow: 0 40px 90px -30px rgba(22, 19, 15, 0.35), 0 0 0 0 rgba(214,149,92,0); transition: box-shadow 0.6s ease; }
.vt-show-card-tag {
  position: absolute; left: 1.1rem; bottom: 1.1rem; z-index: 2;
  display: inline-flex; align-items: center; gap: 0.7rem;
  background: rgba(14, 12, 10, 0.72); backdrop-filter: blur(8px);
  color: var(--sand); border-radius: 100px; padding: 0.55rem 1rem 0.55rem 0.7rem;
  font-size: 0.85rem; letter-spacing: 0.08em;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.vt-show-card-tag b { font-family: var(--font-display); font-weight: 800; font-size: 0.85rem; color: var(--night); background: var(--gold); border-radius: 100px; padding: 0.25em 0.55em; letter-spacing: 0.04em; }
.vt-show-card-tag.is-out { opacity: 0; transform: translateY(8px); }
.vt-show-sticky { flex-direction: row; gap: clamp(1.2rem, 2.5vw, 2.4rem); }
.vt-show-rail { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.6rem; position: relative; }
.vt-show-rail::before { content: ''; position: absolute; left: 5px; top: 8px; bottom: 8px; width: 1px; background: var(--line); }
.vt-show-rail li { position: relative; display: flex; align-items: center; gap: 0.8rem; font-family: var(--font-display); font-weight: 700; font-size: 0.82rem; letter-spacing: 0.12em; color: rgba(66,57,45,0.45); transition: color 0.4s ease; }
.vt-show-rail li i { width: 11px; height: 11px; border-radius: 50%; background: var(--sand); border: 1.5px solid rgba(66,57,45,0.35); transition: background 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease; }
.vt-show-rail li.is-on { color: var(--ink); }
.vt-show-rail li.is-on i { background: var(--gold-deep); border-color: var(--gold-deep); box-shadow: 0 0 0 5px rgba(214,149,92,0.2); }
.vt-show-rail li.is-done i { background: var(--gold); border-color: var(--gold); }
.vt-show-num { display: block; font-family: var(--font-display); font-weight: 800; font-size: clamp(3rem, 6vw, 5.5rem); line-height: 0.9; color: transparent; -webkit-text-stroke: 1.2px rgba(214,149,92,0.55); margin-bottom: 0.6rem; }
.vt-show-list li, .vt-show-tags span { opacity: 0; transform: translateY(12px); transition: opacity 0.5s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1); }
.vt-show-step.is-in .vt-show-list li, .vt-show-step.is-in .vt-show-tags span { opacity: 1; transform: none; }
.vt-show-step.is-in .vt-show-list li:nth-child(1) { transition-delay: 0.05s; }
.vt-show-step.is-in .vt-show-list li:nth-child(2) { transition-delay: 0.14s; }
.vt-show-step.is-in .vt-show-list li:nth-child(3) { transition-delay: 0.23s; }
.vt-show-step.is-in .vt-show-list li:nth-child(4) { transition-delay: 0.32s; }
.vt-show-step.is-in .vt-show-tags span:nth-child(1) { transition-delay: 0.42s; }
.vt-show-step.is-in .vt-show-tags span:nth-child(2) { transition-delay: 0.48s; }
.vt-show-step.is-in .vt-show-tags span:nth-child(3) { transition-delay: 0.54s; }
.vt-show-step.is-in .vt-show-tags span:nth-child(4) { transition-delay: 0.60s; }
.vt-show-season { background: var(--gold-deep) !important; color: var(--sand) !important; }
@media (max-width: 900px) {
  .vt-show-rail { display: none; }
  .vt-show-sticky { flex-direction: column; }
  .vt-show-list li, .vt-show-tags span { opacity: 1; transform: none; }
  .vt-show-num { font-size: 2.4rem; }
}
@media (prefers-reduced-motion: reduce) { .vt-show-list li, .vt-show-tags span { opacity: 1; transform: none; } }

/* Experiências v2: o trilho fica fixo na borda esquerda do palco (o card viaja; o trilho não) */
.vt-show-sticky { flex-direction: column; gap: 0; }
@media (min-width: 901px) {
  .vt-show-rail { position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
}

/* Experiências v2: trilho só com pontos no desktop, fora do trajeto do card */
@media (min-width: 901px) {
  .vt-show-rail { left: -0.4rem; gap: 1.3rem; }
  .vt-show-rail li { font-size: 0; gap: 0; }
  .vt-show-rail li i { width: 10px; height: 10px; }
  .vt-show-rail::before { left: 4.5px; }
}

/* ---------- Um Dia v2: brilho do sol, mar no horizonte, trilho dos atos, temperatura ---------- */
.vt-day-glow {
  position: absolute; z-index: 1; pointer-events: none;
  width: 70vmax; height: 70vmax; left: 0; top: 0;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255, 214, 160, 0.55) 0%, rgba(255, 190, 120, 0.22) 22%, rgba(255, 190, 120, 0) 55%);
  will-change: transform, opacity;
  mix-blend-mode: screen;
}
.vt-day-sea { position: absolute; left: 0; right: 0; bottom: 0; height: 26%; z-index: 1; pointer-events: none; overflow: hidden; }
.vt-day-sea i { position: absolute; inset: 0; display: block; transition: opacity 0.8s ease; }
.vt-day-sea-day { background: linear-gradient(180deg, rgba(120, 178, 200, 0) 0%, rgba(120, 178, 200, 0.28) 25%, rgba(70, 130, 160, 0.45) 100%); }
.vt-day-sea-night { background: linear-gradient(180deg, rgba(8, 12, 28, 0) 0%, rgba(8, 12, 28, 0.35) 25%, rgba(4, 8, 20, 0.75) 100%); opacity: 0; }
.vt-day-sea::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(255,255,255,0.35); }
.vt-day-sea-shine {
  position: absolute; top: 4%; bottom: 0; width: 18vw; left: 50%;
  background: repeating-linear-gradient(180deg, rgba(255,214,160,0.35) 0 2px, rgba(255,214,160,0) 2px 9px);
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.9), rgba(0,0,0,0)); -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.9), rgba(0,0,0,0));
  transform: translateX(-50%); opacity: 0; transition: opacity 0.8s ease;
  animation: vt-shine 3s ease-in-out infinite alternate;
}
@keyframes vt-shine { to { transform: translateX(-50%) scaleX(1.12); } }
.vt-day-rail {
  position: absolute; z-index: 4; left: var(--gutter); bottom: 6.4rem;
  list-style: none; margin: 0; padding: 0; display: flex; gap: 1.6rem;
}
.vt-day-rail li { display: flex; align-items: center; gap: 0.5rem; font-size: 0.8rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(22,19,15,0.5); transition: color 0.6s ease; }
.vt-day-rail li i { width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid rgba(22,19,15,0.4); background: transparent; transition: background 0.5s ease, border-color 0.5s ease, box-shadow 0.5s ease; }
.vt-day-rail li.is-on { color: var(--ink); }
.vt-day-rail li.is-on i { background: #E39B4A; border-color: #E39B4A; box-shadow: 0 0 0 4px rgba(227,155,74,0.25); }
.vt-day-rail li.is-done i { background: rgba(22,19,15,0.35); border-color: transparent; }
.vt-day-stage.is-night .vt-day-rail li { color: rgba(245,245,240,0.5); }
.vt-day-stage.is-night .vt-day-rail li i { border-color: rgba(245,245,240,0.4); }
.vt-day-stage.is-night .vt-day-rail li.is-on { color: var(--sand); }
.vt-day-stage.is-night .vt-day-rail li.is-on i { background: var(--gold); border-color: var(--gold); box-shadow: 0 0 0 4px rgba(213,185,150,0.25); }
.vt-day-stage.is-night .vt-day-rail li.is-done i { background: rgba(245,245,240,0.4); }
.vt-day-temp { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0 0 1.1rem 1.2rem; padding: 0.35em 0.9em; border-radius: 100px; background: rgba(22,19,15,0.08); font-size: 0.82rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink); vertical-align: middle; }
.vt-day-chapter--night .vt-day-temp { background: rgba(245,245,240,0.12); color: var(--sand); }
.vt-day-chapter h3 { font-size: clamp(2rem, 4.4vw, 3.9rem) !important; }
.vt-day-card { box-shadow: 0 40px 90px -30px rgba(20, 15, 8, 0.45), 0 0 80px -20px rgba(255, 190, 120, 0.35); }
.vt-day-card img { transform: scale(1.06); transition: opacity 0.6s ease, transform 2.4s cubic-bezier(0.22, 1, 0.36, 1); }
.vt-day-card img.is-active { transform: scale(1); }
@media (max-width: 900px) { .vt-day-rail { display: none; } .vt-day-glow { width: 120vmax; height: 120vmax; } .vt-day-temp { margin-left: 0; margin-top: 0.5rem; } }
@media (prefers-reduced-motion: reduce) { .vt-day-sea-shine { animation: none; } }

/* Um Dia v2: card ancorado embaixo à direita para o sol não passar atrás dele */
@media (min-width: 901px) {
  .vt-day-card { top: auto; bottom: 7vh; transform: rotate(4deg); width: clamp(220px, 21vw, 330px); aspect-ratio: 3 / 3.5; right: clamp(2rem, 8vw, 9rem); }
}

/* Um Dia v2: rótulo do ato sobe para o canto superior direito (o card ocupa o inferior) */
@media (min-width: 901px) {
  .vt-day-meta { top: 6rem; bottom: auto; }
}

/* Um Dia v3: bloco do capítulo ancorado no topo, título compacto, nada encosta no relógio/trilho */
@media (min-width: 901px) {
  .vt-day-chapter { top: clamp(6.5rem, 15vh, 9rem); transform: none; max-width: min(52ch, 50vw); }
  .vt-day-chapter h3 { font-size: min(clamp(1.7rem, 3.3vw, 3rem), 5.6vh) !important; line-height: 1.08; max-width: 20ch; }
  .vt-day-chapter p { font-size: min(clamp(1rem, 1.3vw, 1.2rem), 2.4vh) !important; max-width: 44ch; line-height: 1.55; margin-top: 1rem; }
  .vt-day-chapter .vt-day-time { margin-bottom: 0.9rem; }
  .vt-day-temp { margin-bottom: 0.8rem; }
  .vt-day-rail { bottom: 6rem; }
  .vt-day-clock { font-size: min(clamp(2rem, 4.5vw, 3.6rem), 6vh) !important; }
}
