/* Premium layer: Instagram-style bold type, immediate hero, motion and project interactions. */
:root {
  --serif: "Montserrat", "Manrope", Arial, sans-serif;
  --sans: "Manrope", Arial, sans-serif;
  --display: "Montserrat", Arial, sans-serif;
  --night: #071b4e;
  --gold: #f2c34e;
  --pink-ig: #f0569f;
  --ease-out: cubic-bezier(.16,1,.3,1);
}

html { scroll-behavior: auto; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
body { font-synthesis: none; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: #ff3ca6; color: #fff; }

/* ---------- Typography (bold sans + pink highlights, like the Instagram feed) ---------- */
.hero h1,
.editorial-copy h2, .section-head h2, .nilda-copy h2, .buyer-featured-head h2,
.usa-services-head h2, .visual-atlas-head h2, .testimonials-head h2, .manifesto-head h2,
.contact-copy h2, .opportunity h2, .video-story-copy h2, .brasil-strip h2,
.market-panel h3, .project-card h3, .buyer-feature-content h3, .modal-content h2,
.compare-head h2, .contact-drawer-head h2, .calculator-head h2, .calculator-intro h2 {
  font-family: var(--display);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -.015em;
}
h1 em, h2 em, h3 em { font-style: normal !important; font-weight: inherit !important; }
.market-flags > span { display: none; }
.market-flags b { margin-left: 0; }
.hero h1 em, .vision h2 em, .video-story-copy h2 em, .manifesto-head h2 em, .contact-copy h2 em,
.visual-atlas-head h2 em, .opportunity h2 em, .market-panel h3 em { color: #ff7dbd; }

@media (min-width: 761px) { .hero-copy { width: min(860px, 60vw); } }
.hero h1 { font-size: clamp(40px, 5vw, 80px); line-height: 1; letter-spacing: -.02em; }
.hero h1 em { display: inline-block; position: relative; }
.editorial-copy h2, .section-head h2, .nilda-copy h2, .buyer-featured-head h2,
.usa-services-head h2, .visual-atlas-head h2, .testimonials-head h2, .manifesto-head h2,
.contact-copy h2, .video-story-copy h2 { font-size: clamp(30px, 3.4vw, 52px); line-height: 1.04; }
.nilda-copy h2 { font-size: clamp(28px, 3vw, 46px); }
.brasil-strip h2, .opportunity h2 { font-size: clamp(28px, 3vw, 46px); line-height: 1.04; }
.market-panel h3 { font-size: clamp(32px, 4vw, 58px); line-height: 1; }
.project-card h3, .buyer-feature-content h3 { font-size: clamp(24px, 2.2vw, 34px) !important; line-height: 1.02; max-width: 100%; }
.modal-content h2, .compare-head h2, .contact-drawer-head h2 { font-size: clamp(26px, 2.6vw, 40px); line-height: 1.04; }
.vision-grid h3, .editorial-points h3, .method-grid h3, .purchase-path-grid h3, .manifesto-body h3, .manifesto-criteria h4,
.testimonial-card h3, .quiz-question h3, .quiz-result h3, .portrait-caption strong, .market-stat strong,
.brasil-entry-note strong, .route strong, .buyer-featured-more strong, .atlas-copy strong, .trust-strip strong {
  font-family: var(--display); font-weight: 700; letter-spacing: -.01em;
}
.vision-grid h3, .editorial-points h3, .method-grid h3, .purchase-path-grid h3 { font-size: 20px; line-height: 1.15; }
.manifesto-body h3 { font-size: clamp(22px, 2.2vw, 30px); line-height: 1.15; }
.market-stat strong, .route strong, .brasil-entry-note strong, .portrait-caption strong { font-size: 18px; line-height: 1.25; }
.buyer-featured-more strong { font-size: 19px; }
.mobile-menu a { font: 800 26px/1.1 var(--display); text-transform: uppercase; }
.faq-question { font-family: var(--display); font-weight: 700; font-size: clamp(16px, 1.4vw, 20px); }
.eyebrow, .market-place, .opportunity-tag, .hero-data small { font-family: var(--display); font-weight: 700; letter-spacing: .2em; }
.button { font-family: var(--display); font-weight: 700; letter-spacing: .02em; }

/* ---------- Hero ---------- */
.hero-media { will-change: transform; transform-origin: 60% 40%; }
.hero::after {
  content: ""; position: absolute; z-index: 1; inset: -50%; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.55'/></svg>");
  opacity: .07; mix-blend-mode: overlay;
  animation: grain 1.2s steps(6) infinite;
}
@keyframes grain {
  0%, 100% { transform: translate(0,0); } 20% { transform: translate(-4%,3%); } 40% { transform: translate(3%,-2%); }
  60% { transform: translate(-2%,-4%); } 80% { transform: translate(4%,2%); }
}
.hero-light {
  position: absolute; z-index: 1; inset: 0; pointer-events: none;
  background: radial-gradient(520px circle at var(--lx, 30%) var(--ly, 40%), rgba(255,111,181,.16), transparent 60%);
  transition: background .2s linear;
}
.hero h1 em {
  background: linear-gradient(100deg, #ff6fb5 0%, #ffc2df 30%, #ff6fb5 55%, #f1a3c8 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: shimmer 6s ease-in-out infinite;
  padding-right: .06em;
}
@keyframes shimmer { 0%, 100% { background-position: 100% 0; } 50% { background-position: 0 0; } }

.hero-copy.reveal { transition: none; }
.hero h1 em .word {
  background: linear-gradient(100deg, #ff6fb5 0%, #ffc2df 30%, #ff6fb5 55%, #f1a3c8 100%); background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: shimmer 6s ease-in-out infinite;
}
.hero h1.is-split em { background: none; animation: none; color: #ff6fb5; }
.rotator { position: relative; display: inline-flex; height: 1.25em; overflow: hidden; vertical-align: bottom; color: #fff; }
.rotator span { display: block; white-space: nowrap; }
.rotator.is-live span { position: absolute; left: 0; top: 0; }
.market-flags b .rotator { margin-left: .5em; color: #ffd0e6; }

.hero-data strong { font-variant-numeric: tabular-nums; }
.scroll-cue span { display: inline-block; animation: cue 2.2s var(--ease-out) infinite; }
@keyframes cue { 0% { transform: translateY(-4px); opacity: 0; } 40% { opacity: 1; } 100% { transform: translateY(6px); opacity: 0; } }

/* ---------- Destination marquee ---------- */
.marquee {
  position: relative; overflow: hidden; padding: 30px 0;
  background: var(--night); color: #fff; border-top: 1px solid rgba(255,255,255,.08);
}
.marquee-track { display: flex; width: max-content; will-change: transform; }
.marquee-group { display: flex; align-items: center; flex-shrink: 0; }
.marquee-group span {
  padding: 0 .38em; font: 900 clamp(38px, 5.6vw, 88px)/1.05 var(--display); text-transform: uppercase; letter-spacing: -.02em; white-space: nowrap;
}
.marquee-group span:nth-child(4n+3) { color: #ff7dbd; }
.marquee-group span.outline { color: rgba(255,255,255,.38); }
.marquee-group i { width: 12px; height: 12px; margin: 0 .5em; flex: none; border-radius: 50%; background: linear-gradient(135deg, #ff3ca6, var(--gold)); }

/* ---------- Line reveals for section titles ---------- */
.split-ready .line { display: block; overflow: hidden; padding-bottom: .1em; margin-bottom: -.1em; }
.split-ready .line > .line-inner { display: block; will-change: transform; }

/* Image wipe on scroll */
.wipe { clip-path: inset(0 0 0 0); }

/* ---------- Project cards ---------- */
.project-card, .buyer-feature-card { transform-style: preserve-3d; will-change: transform; }
.project-card, .project-card.reveal { transition: opacity .7s ease, box-shadow .5s var(--ease-out); }
.buyer-feature-card { transition: box-shadow .5s var(--ease-out); }
.project-card:hover { transform: none; box-shadow: 0 40px 80px -20px rgba(7,24,45,.45); }
.project-card .project-image { transition: transform 1.4s var(--ease-out), opacity .7s ease; }
.project-card:hover .project-image { transform: scale(1.08); }
.project-card .project-image.is-next { opacity: 0; }
.project-card .project-image.is-next.in { opacity: 1; }
.project-card h3 { transition: transform .7s var(--ease-out); }
.project-card:hover h3 { transform: translateY(-6px); }
.project-arrow { transition: transform .5s var(--ease-out), background .3s, color .3s; }
.project-card:hover .project-arrow, .buyer-feature-card:hover button span { transform: rotate(45deg); }
.card-dots { position: absolute; z-index: 4; left: 28px; right: 28px; top: 14px; display: flex; gap: 4px; opacity: 0; transition: opacity .4s; }
.card-dots i { flex: 1; height: 2px; border-radius: 2px; background: rgba(255,255,255,.28); overflow: hidden; }
.card-dots i.on { background: #fff; }
.project-card:hover .card-dots { opacity: 1; }

.card-glare {
  position: absolute; z-index: 2; inset: 0; pointer-events: none; opacity: 0; border-radius: inherit;
  background: radial-gradient(420px circle at var(--gx, 50%) var(--gy, 50%), rgba(255,255,255,.2), transparent 45%);
  transition: opacity .4s;
}
.project-card:hover .card-glare, .buyer-feature-card:hover .card-glare { opacity: 1; }
.buyer-feature-card > img { transition: transform 1.4s var(--ease-out); }
.buyer-feature-card:hover > img { transform: scale(1.08); }

.magnetic { will-change: transform; }

/* Footer signature */
.footer { position: relative; overflow: hidden; }
.footer-signature {
  display: block; width: 100%; margin: 40px 0 0; text-align: center; color: rgba(255,255,255,.07);
  font: 900 clamp(56px, 12vw, 210px)/.9 var(--display); text-transform: uppercase; letter-spacing: -.03em; white-space: nowrap; pointer-events: none;
}
.footer-signature em { font-style: normal; color: rgba(255,111,181,.2); }

@media (max-width: 760px) {
  .hero h1 { font-size: clamp(32px, 9.6vw, 44px); line-height: 1.02; filter: drop-shadow(0 2px 14px rgba(7,27,78,.6)); }
  .marquee { padding: 20px 0; }
  .card-dots { left: 22px; right: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero::after, .hero h1 em, .scroll-cue span { animation: none; }
}

/* Pink highlight bar under the hero accent, like the Instagram covers. */
.hero h1 em::after {
  content: ""; position: absolute; left: 0; right: .12em; bottom: -.02em; height: .1em;
  border-radius: 99px; background: linear-gradient(90deg, #ff3ca6, #ff9ccc);
  transform: scaleX(1); transform-origin: left;
}
