:root{
  --ink:#211E19;
  --ink-2:#2B2721;
  --paper:#E8E1D2;
  --paper-2:#DED5C1;
  --paper-line: rgba(33,30,25,0.14);
  --paper-line-strong: rgba(33,30,25,0.24);
  --bone:#F3EEE3;
  --fog:#726C60;
  --fog-dim:#8f8878;
  --patina:#4F6E63;
  --patina-bright:#6E9587;
  --patina-dim: rgba(79,110,99,0.25);
  --clay:#96502F;
  --clay-dim: rgba(150,80,47,0.22);
  --ease: cubic-bezier(.16,1,.3,1);
  --font-display:'Fraunces', serif;
  --font-body:'Work Sans', -apple-system, sans-serif;
  --font-mono:'Space Mono', monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
::selection{ background:var(--patina-dim); color:var(--ink); }
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; border:none; background:none; color:inherit; cursor:pointer;}
:focus-visible{ outline:2px solid var(--patina); outline-offset:3px; }

.wrap{max-width:1240px; margin:0 auto; padding:0 40px;}
@media (max-width:860px){ .wrap{padding:0 24px;} }
section{position:relative;}

.reveal{ opacity:0; transform:translateY(20px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal-1{transition-delay:.08s;} .reveal-2{transition-delay:.16s;} .reveal-3{transition-delay:.24s;}

.label{
  font-family:var(--font-mono); font-size:12px; letter-spacing:0.04em;
  color:var(--patina); display:inline-flex; align-items:center; gap:8px;
}
.label::before{ content:'—'; color:var(--clay); }

/* ================= NAVBAR ================= */
header{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:24px 0;
  transition:padding .4s var(--ease), background .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
header.scrolled{
  padding:14px 0; background:rgba(232,225,210,0.9); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--paper-line);
}
nav{ display:flex; align-items:center; justify-content:space-between; }
.logo{ display:flex; align-items:center; gap:12px; }
.logo{ transition:transform .3s var(--ease); }
.logo-img{ height:40px; width:auto; filter:sepia(0.15) saturate(0.7); transition:transform .5s var(--ease), filter .4s; }
.logo-word{ font-family:var(--font-display); font-size:20px; font-weight:500; }
.logo-word span{ color:var(--patina); font-style:italic; transition:color .35s; }
.logo:hover .logo-img{ transform:scale(1.1) rotate(-4deg); filter:sepia(0.05) saturate(1); }
.logo:hover .logo-word span{ color:var(--clay); }
.logo:hover{ transform:translateY(-1px); }
.nav-links{ display:flex; gap:34px; list-style:none; }
.nav-links a{ font-size:13.5px; color:var(--fog); position:relative; padding:6px 0; transition:color .3s; }
.nav-links a::after{ content:''; position:absolute; bottom:0; left:0; width:0; height:1px; background:var(--clay); transition:width .35s var(--ease); }
.nav-links a:hover, .nav-links a.active{ color:var(--ink); }
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
.nav-cta{
  font-size:13px; font-weight:500; padding:10px 20px; border-radius:2px;
  border:1px solid var(--ink); transition:background .3s, color .3s;
}
.nav-cta:hover{ background:var(--ink); color:var(--paper); }
.nav-burger{ display:none; width:40px; height:40px; align-items:center; justify-content:center; border:1px solid var(--paper-line-strong); border-radius:2px; }
.nav-burger span{ position:relative; width:18px; height:1px; background:var(--ink); display:block; }
.nav-burger span::before, .nav-burger span::after{ content:''; position:absolute; left:0; width:18px; height:1px; background:var(--ink); transition:transform .3s var(--ease), opacity .3s; }
.nav-burger span::before{ top:-6px; } .nav-burger span::after{ top:6px; }
.nav-burger.is-open span{ background:transparent; }
.nav-burger.is-open span::before{ transform:translateY(6px) rotate(45deg); }
.nav-burger.is-open span::after{ transform:translateY(-6px) rotate(-45deg); }
@media (max-width:860px){
  .nav-burger{ display:flex; }
  .nav-links{
    position:fixed; top:0; right:0; bottom:0; width:min(78vw, 320px);
    background:var(--bone); border-left:1px solid var(--paper-line-strong);
    flex-direction:column; justify-content:center; gap:30px; padding:40px;
    transform:translateX(100%); transition:transform .4s var(--ease);
    z-index:1100; display:flex;
  }
  .nav-links.is-open{ transform:translateX(0); }
  .nav-links a{ font-size:16px; }
  .nav-overlay{ position:fixed; inset:0; background:rgba(33,30,25,0.35); z-index:1050; opacity:0; pointer-events:none; transition:opacity .35s ease; }
  .nav-overlay.is-open{ opacity:1; pointer-events:auto; }
  .nav-cta{ display:none; }
}
@media (prefers-reduced-motion: reduce){ .nav-links, .nav-burger span, .nav-burger span::before, .nav-burger span::after, .nav-overlay{ transition:none; } }

/* ================= HERO ================= */
.hero{ min-height:100vh; display:flex; align-items:center; padding-top:120px; padding-bottom:70px; }
.hero-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:20px; align-items:center; position:relative; }
@media (max-width:980px){ .hero-grid{ grid-template-columns:1fr; } }

.hero-title{
  font-family:var(--font-display); font-weight:400; letter-spacing:-0.01em;
  font-size:clamp(38px, 5.4vw, 74px); line-height:1.04; margin-top:22px;
}
.hero-title em{ font-style:italic; font-weight:400; color:var(--clay); }
.hero-sub{ margin-top:24px; max-width:440px; font-size:16.5px; line-height:1.7; color:var(--fog); font-weight:300; }
.hero-actions{ margin-top:38px; display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.btn-primary{
  display:inline-flex; align-items:center; gap:10px; padding:15px 26px; border-radius:2px;
  background:var(--ink); color:var(--bone); font-size:14px; font-weight:500;
  transition:background .3s, transform .3s var(--ease);
}
.btn-primary:hover{ background:var(--patina); transform:translateY(-2px); }
.btn-ghost{ display:inline-flex; align-items:center; gap:8px; font-size:14px; color:var(--fog); border-bottom:1px solid var(--paper-line-strong); padding-bottom:3px; transition:color .3s, border-color .3s; }
.btn-ghost:hover{ color:var(--ink); border-color:var(--clay); }

/* hero visual: the woven mark, not a glowing orb */
.hero-visual{ position:relative; display:flex; align-items:center; justify-content:center; }
.weave{ width:100%; max-width:420px; }
.hero-note{
  position:absolute; bottom:-10px; left:6%; max-width:230px;
  font-family:var(--font-mono); font-size:11px; line-height:1.6; color:var(--fog);
  background:var(--bone); border:1px solid var(--paper-line-strong); padding:14px 16px;
  transform:rotate(-2deg);
}
@media (max-width:980px){ .hero-note{ position:static; margin-top:20px; transform:none; } }

/* ================= SECTION HEADS ================= */
.section-pad{ padding:120px 0; }
@media (max-width:860px){ .section-pad{ padding:80px 0; } }
.section-head{ max-width:600px; }
.section-head h2{
  font-family:var(--font-display); font-weight:400; font-size:clamp(28px,3.6vw,44px);
  line-height:1.12; margin-top:16px; letter-spacing:-0.01em;
}
.section-head h2 em{ font-style:italic; color:var(--patina); font-weight:400; }

/* ================= NOTA PESSOAL (early, honest voice) ================= */
.note-section{ border-top:1px solid var(--paper-line); border-bottom:1px solid var(--paper-line); background:var(--bone); }
.note-grid{ display:grid; grid-template-columns:0.7fr 1.3fr; gap:60px; align-items:start; padding:100px 0; }
@media (max-width:860px){ .note-grid{ grid-template-columns:1fr; padding:70px 0; gap:30px; } }
.note-quote{
  font-family:var(--font-display); font-style:italic; font-weight:400;
  font-size:clamp(22px,2.4vw,30px); line-height:1.5;
}
.note-quote .mark{ color:var(--clay); }
.note-meta{ margin-top:26px; font-family:var(--font-mono); font-size:12px; color:var(--fog-dim); }
.note-list{ display:flex; flex-direction:column; gap:22px; }
.note-item{ display:grid; grid-template-columns:34px 1fr; gap:16px; padding-top:20px; border-top:1px solid var(--paper-line); }
.note-item:first-child{ border-top:none; padding-top:0; }
.note-item .n{ font-family:var(--font-mono); font-size:12px; color:var(--patina); padding-top:3px; }
.note-item p{ font-size:14.5px; line-height:1.75; color:var(--fog); font-weight:300; max-width:480px; }
.note-item strong{ color:var(--ink); font-weight:500; }

/* ================= MATERIAIS (skills as woven sentence, not marquee) ================= */
.materials-text{
  font-family:var(--font-display); font-weight:400; font-size:clamp(22px,2.8vw,32px);
  line-height:1.65; max-width:900px;
}
.tag{
  font-family:var(--font-mono); font-size:0.62em; letter-spacing:0.02em;
  color:var(--ink); background:var(--paper-2); border:1px solid var(--paper-line-strong);
  padding:3px 10px; border-radius:100px; display:inline-block; margin:0 2px; vertical-align:middle;
  transition:background .3s, border-color .3s;
}
.tag:hover{ background:var(--patina); color:var(--bone); border-color:var(--patina); }

/* ================= PORTFOLIO ================= */
.pf-disclaimer{ margin-top:16px; font-size:14.5px; color:var(--fog); font-weight:300; max-width:560px; }
.pf-invite{ margin-top:12px; color:var(--clay); font-size:14.5px; font-weight:500; }

.portfolio-list{ margin-top:80px; display:flex; flex-direction:column; }
.pf-item{
  display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center;
  padding:64px 0; border-top:1px solid var(--paper-line);
}
.pf-item:last-child{ border-bottom:1px solid var(--paper-line); }
@media (max-width:860px){ .pf-item{ grid-template-columns:1fr; gap:26px; padding:44px 0; } }
.pf-item:nth-child(2){ grid-template-columns:1.15fr 0.85fr; }
.pf-item:nth-child(2) .pf-visual{ order:1; }
.pf-item:nth-child(2) .pf-meta{ order:2; }
@media (max-width:860px){ .pf-item:nth-child(2) .pf-visual{ order:0; } .pf-item:nth-child(2) .pf-meta{ order:0; } }

.pf-item h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(24px,2.6vw,34px); line-height:1.12; margin-top:16px; }
.pf-desc{ margin-top:16px; color:var(--fog); font-size:14.5px; line-height:1.75; font-weight:300; max-width:420px; }
.pf-stack{ margin-top:20px; display:flex; gap:8px; flex-wrap:wrap; }
.pf-stack span{ font-family:var(--font-mono); font-size:10.5px; color:var(--patina); border:1px solid var(--patina-dim); padding:4px 9px; border-radius:100px; }
.pf-visual{ position:relative; border:1px solid var(--paper-line-strong); }
.pf-visual .shot{ width:100%; aspect-ratio:16/10.6; background-size:cover; background-position:center; filter:sepia(0.08) saturate(0.9); }
.pf-tag-float{
  position:absolute; top:14px; left:14px; font-family:var(--font-mono); font-size:10px;
  background:var(--bone); border:1px solid var(--paper-line-strong); padding:6px 11px;
}

/* ================= PROCESS (legitimate sequence: keep numbers) ================= */
.process-section{ background:var(--ink); color:var(--bone); }
.process-section .label{ color:var(--patina-bright); }
.process-section .label::before{ color:var(--clay); }
.process-list{ margin-top:70px; }
.process-item{
  display:grid; grid-template-columns:110px 1fr; gap:34px; padding:40px 0;
  border-top:1px solid rgba(243,238,227,0.14);
}
.process-item:last-child{ border-bottom:1px solid rgba(243,238,227,0.14); }
.process-num{ font-family:var(--font-display); font-style:italic; font-size:34px; color:var(--patina-bright); }
.process-item h3{ font-family:var(--font-display); font-size:22px; font-weight:500; margin-bottom:8px; }
.process-item p{ color:rgba(243,238,227,0.68); font-size:14.5px; line-height:1.75; font-weight:300; max-width:520px; }
@media (max-width:860px){ .process-item{ grid-template-columns:60px 1fr; gap:20px; } }

/* ================= CTA ================= */
.cta-section{ padding:150px 0; text-align:left; border-bottom:1px solid var(--paper-line); }
.cta-inner{ max-width:640px; }
.cta-inner h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(32px,4.6vw,56px); line-height:1.08; }
.cta-inner h2 em{ font-style:italic; color:var(--clay); }
.cta-inner p{ margin-top:18px; color:var(--fog); font-size:15.5px; font-weight:300; max-width:460px; }
.cta-actions{ margin-top:36px; display:flex; gap:24px; flex-wrap:wrap; align-items:center; }

/* ================= FOOTER ================= */
footer{ padding:70px 0 34px; }
.footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:40px; }
@media (max-width:860px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
.footer-brand p{ margin-top:14px; color:var(--fog); font-size:13.5px; line-height:1.7; max-width:280px; font-weight:300; }
.footer-col h4{ font-family:var(--font-mono); font-size:11px; letter-spacing:0.05em; color:var(--fog-dim); margin-bottom:14px; text-transform:uppercase; }
.footer-col ul{ list-style:none; display:flex; flex-direction:column; gap:9px; }
.footer-col a,.footer-col span{ font-size:13.5px; color:var(--fog); transition:color .3s; }
.footer-col a:hover{ color:var(--ink); }
.footer-bottom{ margin-top:60px; padding-top:24px; border-top:1px solid var(--paper-line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-family:var(--font-mono); font-size:11px; color:var(--fog-dim); }

/* ================= SCROLL PROGRESS ================= */
.scroll-progress{ position:fixed; top:0; left:0; height:2px; width:0%; background:var(--clay); z-index:1200; transition:width .1s linear; }
@media (prefers-reduced-motion: reduce){ .scroll-progress{ display:none; } }

/* ================= INTERACTIVE BACKGROUND ORBS ================= */
.bg-orbs{ position:fixed; inset:0; overflow:hidden; pointer-events:none; }
.orb{ position:absolute; border-radius:50%; filter:blur(70px); opacity:0.4; will-change:transform; transition:transform 1.4s var(--ease); }
.orb-1{ width:34vw; height:34vw; max-width:520px; max-height:520px; background:radial-gradient(circle, var(--patina-bright), transparent 70%); top:-8%; left:-8%; }
.orb-2{ width:30vw; height:30vw; max-width:460px; max-height:460px; background:radial-gradient(circle, var(--clay), transparent 70%); bottom:-12%; right:-8%; }
@media (prefers-reduced-motion: reduce){ .orb{ transition:none; } }
@media (max-width:860px){ .bg-orbs{ opacity:0.7; } }

/* ================= FLOATING CTA ================= */
.floating-cta{
  position:fixed; bottom:28px; right:28px; z-index:900;
  display:inline-flex; align-items:center; gap:8px;
  background:var(--ink); color:var(--bone); font-size:13.5px; font-weight:500;
  padding:14px 22px; border-radius:2px; box-shadow:0 10px 28px rgba(33,30,25,0.28);
  opacity:0; transform:translateY(16px); pointer-events:none;
  transition:opacity .4s var(--ease), transform .4s var(--ease), background .3s;
}
.floating-cta.show{ opacity:1; transform:translateY(0); pointer-events:auto; }
.floating-cta:hover{ background:var(--patina); }
@media (max-width:600px){ .floating-cta{ left:20px; right:20px; text-align:center; justify-content:center; bottom:18px; } }

/* ================= WHATSAPP FAB ================= */
.whatsapp-fab{
  position:fixed; bottom:92px; right:28px; z-index:901;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px rgba(33,30,25,0.32);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.whatsapp-fab:hover{ transform:translateY(-3px) scale(1.06); box-shadow:0 14px 30px rgba(33,30,25,0.4); }
.whatsapp-fab svg{ width:28px; height:28px; }
.whatsapp-fab .pulse{
  position:absolute; inset:0; border-radius:50%; background:#25D366;
  animation:waPulse 2.2s var(--ease) infinite; z-index:-1;
}
@keyframes waPulse{ 0%{ transform:scale(1); opacity:.55; } 100%{ transform:scale(1.6); opacity:0; } }
@media (prefers-reduced-motion: reduce){ .whatsapp-fab .pulse{ display:none; } }
@media (max-width:600px){ .whatsapp-fab{ right:16px; bottom:84px; width:50px; height:50px; } .whatsapp-fab svg{ width:25px; height:25px; } }

/* ================= SMALL SCREEN TUNING (<=480px) ================= */
@media (max-width:480px){
  .wrap{ padding:0 18px; }
  .hero{ padding-top:104px; padding-bottom:50px; }
  .hero-actions{ flex-direction:column; align-items:flex-start; gap:16px; }
  .btn-primary{ width:100%; justify-content:center; }
  .section-pad{ padding:64px 0; }
  .invest-card{ padding:28px 22px; }
  .cta-actions{ flex-direction:column; align-items:flex-start; gap:16px; }
  .cta-section{ padding:100px 0; }
  .footer-grid{ grid-template-columns:1fr; gap:32px; }
  .logo-word{ font-size:18px; }
}

/* ================= HERO TRUST LINE ================= */
.hero-trust{ margin-top:14px; font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.02em; color:var(--fog-dim); }

/* ================= GRAIN TEXTURE ================= */
.grain{
  position:fixed; inset:0; z-index:2; pointer-events:none; opacity:0.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 1.1s steps(4) infinite;
}
@keyframes grainShift{
  0%{ transform:translate(0,0); }
  25%{ transform:translate(-2%,-1%); }
  50%{ transform:translate(1%,2%); }
  75%{ transform:translate(-1%,1%); }
  100%{ transform:translate(0,0); }
}
@media (prefers-reduced-motion: reduce){ .grain{ display:none; } }

/* ================= CUSTOM CURSOR ================= */
.cursor-dot, .cursor-ring{
  position:fixed; top:0; left:0; pointer-events:none; z-index:1300; border-radius:50%;
  transform:translate(-50%,-50%); will-change:transform;
}
.cursor-dot{ width:6px; height:6px; background:var(--clay); transition:transform .12s var(--ease), opacity .3s; }
.cursor-ring{ width:34px; height:34px; border:1px solid var(--patina); transition:width .25s var(--ease), height .25s var(--ease), transform .18s ease-out, opacity .3s, border-color .3s; }
.cursor-ring.is-active{ width:54px; height:54px; border-color:var(--clay); }
.cursor-dot.is-hidden, .cursor-ring.is-hidden{ opacity:0; }
@media (hover:none), (max-width:860px){ .cursor-dot, .cursor-ring{ display:none; } }
.cursor-ring::after{
  content:''; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:9px; letter-spacing:0.06em; color:var(--bone);
  opacity:0; transition:opacity .25s var(--ease);
}
.cursor-ring.is-view{ width:64px; height:64px; background:var(--ink); border-color:var(--ink); }
.cursor-ring.is-view::after{ content:'VER'; opacity:1; }

/* ================= MOUSE LIGHT FIELD ================= */
.mouse-light{
  position:fixed; top:0; left:0; width:520px; height:520px; margin:-260px 0 0 -260px;
  border-radius:50%; pointer-events:none; z-index:1; opacity:0;
  background:radial-gradient(circle, rgba(150,80,47,0.10), rgba(79,110,99,0.06) 45%, transparent 72%);
  transform:translate(var(--mx,50vw), var(--my,50vh)); transition:opacity .5s ease;
  will-change:transform;
}
.mouse-light.is-active{ opacity:1; }
@media (hover:none), (max-width:860px), (prefers-reduced-motion: reduce){ .mouse-light{ display:none; } }

/* ================= THREAD LINE (scroll spine) ================= */
.thread-line{ position:fixed; top:0; left:22px; width:2px; height:100vh; z-index:3; pointer-events:none; }
.thread-line svg{ width:100%; height:100%; overflow:visible; }
.thread-line path{ transition:stroke-dashoffset .1s linear; }
@media (max-width:1100px), (prefers-reduced-motion: reduce){ .thread-line{ display:none; } }

/* ================= REACTIVE WORDS ================= */
.hero-title em, .section-head h2 em, .cta-inner h2 em, .invest-cta h2 em{
  display:inline-block; transition:transform .35s var(--ease), color .35s;
}
@media (hover:hover){
  .hero-title em:hover, .section-head h2 em:hover, .cta-inner h2 em:hover, .invest-cta h2 em:hover{
    transform:translateY(-3px) rotate(-1deg); color:var(--clay);
  }
}
.tag{ transition:background .3s, border-color .3s, transform .25s var(--ease); }
@media (hover:hover){ .tag:hover{ transform:translateY(-2px); } }

/* ================= WEAVE DRAW-IN ================= */
.weave path{ transition:stroke-dashoffset 1.4s var(--ease); }
.weave circle{ opacity:0; transition:opacity .5s ease; }
.weave circle.in{ opacity:1; }
.hero-visual{ perspective:900px; }
.hero-visual .weave{ transition:transform .25s ease-out; transform-style:preserve-3d; }

/* ================= MAGNETIC BUTTONS ================= */
.btn-primary, .nav-cta{ transition:background .3s, transform .18s var(--ease); }

/* ================= PORTFOLIO TILT ================= */
.pf-visual{ transition:transform .2s ease-out; transform-style:preserve-3d; will-change:transform; }

/* ================= SPLIT TEXT ================= */
.hero-title .char{ display:inline-block; opacity:0; transform:translateY(60%) rotate(4deg); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.hero-title .char.in{ opacity:1; transform:translateY(0) rotate(0deg); }
.hero-title .space{ display:inline-block; width:0.28em; }

/* ================= INVESTIMENTO ================= */
.invest-grid{ margin-top:60px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:start; }
@media (max-width:980px){ .invest-grid{ grid-template-columns:1fr; } }
.invest-card{ border:1px solid var(--paper-line-strong); padding:36px 30px; background:var(--bone); transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .3s; }
.invest-card:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(33,30,25,0.10); }
.invest-card-featured{ border-color:var(--patina); border-width:2px; position:relative; background:var(--paper-2); box-shadow:0 20px 44px rgba(79,110,99,0.14); }
.invest-card-featured:hover{ transform:translateY(-6px); }
.invest-seal{ position:absolute; top:-14px; left:30px; background:var(--patina); color:var(--bone); font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; padding:6px 14px; border-radius:100px; box-shadow:0 6px 16px rgba(79,110,99,0.35); }
.invest-card h3{ font-family:var(--font-display); font-weight:400; font-size:24px; margin-top:14px; }
.invest-list{ list-style:none; margin-top:22px; display:flex; flex-direction:column; gap:10px; }
.invest-list li{ font-size:13.5px; color:var(--fog); font-weight:300; padding-left:16px; position:relative; }
.invest-list li::before{ content:'—'; color:var(--clay); position:absolute; left:0; }
.invest-price{ margin-top:26px; padding-top:20px; border-top:1px solid var(--paper-line); font-family:var(--font-display); font-size:26px; color:var(--ink); }
.invest-price small{ display:block; margin-bottom:5px; font-family:var(--font-mono); font-size:10px; line-height:1.4; letter-spacing:.08em; text-transform:uppercase; color:var(--fog-dim); }
.invest-price strong{ color:var(--patina); font-weight:500; }
.invest-payment{ margin-top:10px; font-family:var(--font-mono); font-size:11px; line-height:1.7; color:var(--fog-dim); }
.invest-hosting-note{ margin-top:8px; font-size:11.5px; color:var(--fog-dim); font-weight:300; line-height:1.5; }
.invest-deadline{ margin-top:18px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 0; border-top:1px solid var(--paper-line); border-bottom:1px solid var(--paper-line); font-family:var(--font-mono); font-size:10.5px; color:var(--fog-dim); }
.invest-deadline strong{ color:var(--patina-bright); font-weight:400; text-align:right; }
.invest-anchor{ margin-top:14px; padding-top:14px; border-top:1px dashed var(--patina-dim); font-size:12.5px; color:var(--patina); font-weight:500; line-height:1.6; }
.testimonial-grid{ margin-top:60px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:980px){ .testimonial-grid{ grid-template-columns:1fr; } }
.testimonial-card{ border:1px solid var(--paper-line-strong); background:var(--bone); padding:28px 26px; transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.testimonial-card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(33,30,25,0.08); }
.testimonial-quote{ font-family:var(--font-display); font-style:italic; font-size:15.5px; line-height:1.6; color:var(--ink); }
.testimonial-meta{ margin-top:18px; padding-top:14px; border-top:1px solid var(--paper-line); font-family:var(--font-mono); font-size:11px; color:var(--fog-dim); }

.invest-sub-grid{ margin-top:90px; display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:40px; padding-top:60px; border-top:1px solid var(--paper-line); }
@media (max-width:980px){ .invest-sub-grid{ grid-template-columns:1fr; } }
.invest-steps{ list-style:none; counter-reset:invest-step; margin-top:20px; display:flex; flex-direction:column; gap:14px; }
.invest-steps li{ counter-increment:invest-step; font-size:13.5px; color:var(--fog); font-weight:300; padding-left:30px; position:relative; }
.invest-steps li::before{ content:counter(invest-step); font-family:var(--font-mono); font-size:11px; color:var(--patina); position:absolute; left:0; top:1px; border:1px solid var(--patina-dim); width:20px; height:20px; border-radius:100px; display:flex; align-items:center; justify-content:center; }
.invest-sub .invest-list{ margin-top:20px; }

.invest-cta{ margin-top:100px; padding-top:80px; border-top:1px solid var(--paper-line); text-align:left; max-width:640px; }
.invest-cta h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(28px,3.6vw,40px); line-height:1.15; }
.invest-cta h2 em{ font-style:italic; color:var(--clay); }
.invest-cta .btn-primary{ margin-top:32px; }

/* ================= FAQ ACCORDION ================= */
.faq-list{ margin-top:50px; max-width:760px; }
.faq-item{ border-top:1px solid var(--paper-line); }
.faq-item:last-child{ border-bottom:1px solid var(--paper-line); }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:26px 4px; text-align:left; font-family:var(--font-display); font-size:19px;
  color:var(--ink); transition:color .3s;
}
.faq-q:hover{ color:var(--patina); }
.faq-icon{ position:relative; flex:none; width:18px; height:18px; }
.faq-icon::before, .faq-icon::after{
  content:''; position:absolute; top:50%; left:50%; background:var(--clay);
  transform:translate(-50%,-50%); transition:transform .35s var(--ease), opacity .35s;
}
.faq-icon::before{ width:14px; height:1.5px; }
.faq-icon::after{ width:1.5px; height:14px; }
.faq-item.is-open .faq-icon::after{ transform:translate(-50%,-50%) rotate(90deg); opacity:0; }
.faq-item.is-open .faq-q{ color:var(--patina); }
.faq-a{
  max-height:0; overflow:hidden; transition:max-height .45s var(--ease), opacity .35s var(--ease), padding .45s var(--ease);
  opacity:0; padding:0 4px;
}
.faq-a p{ color:var(--fog); font-size:15px; line-height:1.75; font-weight:300; max-width:620px; padding-bottom:26px; }
.faq-item.is-open .faq-a{ opacity:1; }
@media (prefers-reduced-motion: reduce){ .faq-a, .faq-icon::before, .faq-icon::after{ transition:none; } }

/* ================= LOADER / ABERTURA CINEMATOGRÁFICA ================= */
.loader{
  position:fixed; inset:0; z-index:5000; background:var(--ink);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px;
  transition:opacity .8s var(--ease), visibility .8s var(--ease);
  animation:loaderFailSafe .7s var(--ease) 2.8s forwards;
}
.loader-weave{ width:120px; height:120px; }
.loader-weave path{ stroke-dasharray:420; stroke-dashoffset:420; animation:loaderDraw 1.15s var(--ease) forwards; }
.loader-weave path:nth-child(2){ animation-delay:.14s; }
.loader-weave circle{ opacity:0; animation:loaderDot .4s ease forwards .95s; }
@keyframes loaderDraw{ to{ stroke-dashoffset:0; } }
@keyframes loaderDot{ to{ opacity:1; } }
.loader-word{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--bone); opacity:0; animation:loaderWord .6s ease forwards 1.05s;
}
@keyframes loaderWord{ from{ opacity:0; transform:translateY(6px);} to{ opacity:0.72; transform:translateY(0);} }
@keyframes loaderFailSafe{
  to{ opacity:0; visibility:hidden; pointer-events:none; }
}
.loader.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; animation:none; }
@media (prefers-reduced-motion: reduce){
  .loader{ transition:opacity .3s; }
  .loader-weave path{ animation:none; stroke-dashoffset:0; }
  .loader-weave circle{ animation:none; opacity:1; }
  .loader-word{ animation:none; opacity:0.72; }
}

/* ================= MARQUEE DE FERRAMENTAS (carrossel contínuo) ================= */
.tools-marquee{
  margin-top:44px; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
}
.marquee-track{ display:flex; gap:14px; width:max-content; animation:marqueeScroll 30s linear infinite; }
.tools-marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee-track .tag{ margin:0; white-space:nowrap; }
@keyframes marqueeScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .marquee-track{ animation:none; } }

/* ================= PORTFOLIO — GALERIA HORIZONTAL COM PROFUNDIDADE ================= */
.pf-pin{ position:relative; height:300vh; margin-top:70px; }
.pf-pin-inner{
  position:sticky; top:0; height:100vh; display:flex; align-items:center;
  overflow:hidden;
}
.pf-pin-inner::before, .pf-pin-inner::after{
  content:''; position:absolute; top:0; bottom:0; width:6vw; z-index:2; pointer-events:none;
}
.pf-pin-inner::before{ left:0; background:linear-gradient(90deg, var(--paper), transparent); }
.pf-pin-inner::after{ right:0; background:linear-gradient(270deg, var(--paper), transparent); }
.pf-track{ display:flex; gap:36px; padding:0 8vw; }
.pf-card{
  flex:0 0 min(540px,76vw); perspective:1100px;
}
.pf-card-visual{
  position:relative; border:1px solid var(--paper-line-strong); transform-style:preserve-3d;
  transition:transform .1s linear;
}
.pf-card-visual .shot{ width:100%; aspect-ratio:16/10.6; background-size:cover; background-position:center; filter:sepia(0.08) saturate(0.9); }
.pf-card-meta{ padding-top:26px; }
.pf-card-meta h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(22px,2.2vw,28px); line-height:1.14; margin-top:12px; }
.pf-card-cta{
  flex:0 0 min(360px,70vw); display:flex; flex-direction:column; justify-content:center;
  border:1px dashed var(--paper-line-strong); padding:40px 34px; min-height:340px;
}
.pf-card-cta h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(22px,2.2vw,28px); line-height:1.2; margin-top:14px; }
.pf-card-cta .btn-primary{ margin-top:26px; align-self:flex-start; }
.pf-scroll-hint{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%); z-index:3;
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.08em; color:var(--fog-dim);
  display:flex; align-items:center; gap:10px; opacity:0.85; text-transform:uppercase;
}
.pf-scroll-hint .line{ width:34px; height:1px; background:var(--fog-dim); position:relative; overflow:hidden; }
.pf-scroll-hint .line::after{ content:''; position:absolute; inset:0; background:var(--clay); animation:pfHintMove 1.8s ease-in-out infinite; }
@keyframes pfHintMove{ 0%{ transform:translateX(-100%);} 50%{ transform:translateX(0);} 100%{ transform:translateX(100%);} }
@media (max-width:860px){
  .pf-pin{ height:auto; margin-top:44px; }
  .pf-pin-inner{ position:static; height:auto; overflow-x:auto; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; padding-bottom:6px; }
  .pf-pin-inner::before, .pf-pin-inner::after{ display:none; }
  .pf-track{ padding:0 24px; transform:none !important; }
  .pf-card{ scroll-snap-align:start; flex-basis:82vw; }
  .pf-card-visual{ transform:none !important; }
  .pf-scroll-hint{ display:none; }
}
@media (prefers-reduced-motion: reduce){ .pf-card-visual, .pf-track{ transition:none; } .pf-scroll-hint .line::after{ animation:none; } }

/* ================= PROCESSO — COLUNA STICKY ================= */
.process-pin{ display:grid; grid-template-columns:170px 1fr; gap:60px; margin-top:70px; }
.process-sticky{ position:sticky; top:150px; align-self:start; height:fit-content; }
.process-sticky-num{
  font-family:var(--font-display); font-style:italic; font-weight:400; font-size:88px; line-height:1;
  color:var(--patina-bright); transition:opacity .35s var(--ease);
}
.process-sticky-label{ margin-top:6px; font-family:var(--font-mono); font-size:11px; color:rgba(243,238,227,0.5); letter-spacing:0.04em; }
.process-dots{ display:flex; flex-direction:column; gap:11px; margin-top:30px; }
.pdot{ width:7px; height:7px; border-radius:50%; background:rgba(243,238,227,0.22); transition:background .35s, transform .35s; }
.pdot.is-active{ background:var(--clay); transform:scale(1.4); }
.process-list{ margin-top:0; }
.process-item{ transition:opacity .4s var(--ease); opacity:0.4; }
.process-item.is-active{ opacity:1; }
.process-item.is-active .process-num{ color:var(--clay); }
@media (max-width:860px){
  .process-pin{ grid-template-columns:1fr; gap:0; }
  .process-sticky{ position:static; display:flex; align-items:center; gap:16px; margin-bottom:10px; }
  .process-sticky-num{ font-size:44px; }
  .process-dots{ flex-direction:row; margin-top:0; }
  .process-item{ opacity:1; }
}

/* ================= CARDS COM PROFUNDIDADE + LUZ REATIVA ================= */
.invest-card, .testimonial-card{ position:relative; }
.invest-card::before, .testimonial-card::before{
  content:''; position:absolute; inset:0; opacity:0; pointer-events:none; z-index:0;
  background:radial-gradient(280px circle at var(--sx,50%) var(--sy,50%), rgba(150,80,47,0.12), transparent 65%);
  transition:opacity .4s ease;
}
.invest-card:hover::before, .testimonial-card:hover::before{ opacity:1; }
.invest-card > *, .testimonial-card > *{ position:relative; z-index:1; }
@media (hover:none){ .invest-card::before, .testimonial-card::before{ display:none; } }

/* ================= ELEMENTOS FLUTUANTES ================= */
.floating-dot{ position:absolute; border-radius:50%; background:var(--clay); opacity:0.35; pointer-events:none; }
.note-section{ overflow:hidden; }
.note-section .floating-dot{ width:6px; height:6px; top:14%; right:8%; animation:floatDrift 7s ease-in-out infinite; }
.note-section .floating-dot.d2{ width:4px; height:4px; top:70%; right:18%; background:var(--patina); animation-delay:1.4s; animation-duration:9s; }
@keyframes floatDrift{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(-14px,18px); } }
@media (prefers-reduced-motion: reduce){ .floating-dot{ animation:none; } }

/* ================= VORTEX DARK — DIREÇÃO FINAL ================= */
:root{
  --ink:#F4EFE5;
  --ink-2:#0E0D0B;
  --paper:#080808;
  --paper-2:#15130F;
  --paper-line:rgba(244,239,229,.11);
  --paper-line-strong:rgba(226,192,106,.25);
  --bone:#10100E;
  --fog:#A8A196;
  --fog-dim:#777168;
  --patina:#C5A253;
  --patina-bright:#E2C06A;
  --patina-dim:rgba(197,162,83,.2);
  --clay:#D4AF5A;
  --clay-dim:rgba(212,175,90,.18);
}
body{
  background:
    linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),
    var(--paper);
  background-size:72px 72px;
}
body::before{
  content:''; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(circle at 72% 8%,rgba(212,175,90,.1),transparent 30%),radial-gradient(circle at 12% 82%,rgba(197,162,83,.06),transparent 26%);
}
header.scrolled{ background:rgba(8,8,8,.82); border-color:var(--paper-line); }
.logo-img{ filter:grayscale(1) brightness(2.3) sepia(.2); }
.logo-word span{ color:var(--patina-bright); }
.nav-cta,.btn-primary{ background:var(--patina); color:#090806; border-color:var(--patina); }
.nav-cta:hover,.btn-primary:hover{ background:var(--ink); color:#090806; }
.nav-links{ background-color:transparent; }
.hero{ isolation:isolate; }
.hero::after{
  content:'VORTEX'; position:absolute; right:-.05em; bottom:-.12em; z-index:-1;
  font-family:var(--font-display); font-size:clamp(110px,22vw,340px); line-height:.75;
  color:transparent; -webkit-text-stroke:1px rgba(226,192,106,.07); letter-spacing:-.07em;
}
.hero-title{ font-size:clamp(44px,6.2vw,86px); max-width:820px; }
.hero-title em,.section-head h2 em,.cta-inner h2 em,.invest-cta h2 em{ color:var(--patina-bright); }
.hero-visual::before,.hero-visual::after{
  content:''; position:absolute; border-radius:50%; pointer-events:none;
  border:1px solid rgba(226,192,106,.18); animation:vortexOrbit 18s linear infinite;
}
.hero-visual::before{ width:82%; aspect-ratio:1; transform:rotate(20deg); }
.hero-visual::after{ width:58%; aspect-ratio:1; animation-direction:reverse; animation-duration:12s; }
@keyframes vortexOrbit{ to{ transform:rotate(380deg); } }
.hero-note,.pf-tag-float{ background:rgba(16,16,14,.9); color:var(--fog); backdrop-filter:blur(12px); }
.note-section,.invest-card,.testimonial-card{ background:#0E0D0B; }
.process-section{ background:#0B0A09; color:var(--ink); border-block:1px solid var(--paper-line); }
.process-item{ border-color:var(--paper-line); }
.pf-pin-inner::before{ background:linear-gradient(90deg,var(--paper),transparent); }
.pf-pin-inner::after{ background:linear-gradient(270deg,var(--paper),transparent); }
.pf-card-visual,.invest-card,.testimonial-card{ box-shadow:0 24px 80px rgba(0,0,0,.26); }
.pf-card-visual{ overflow:hidden; background:#111; }
.pf-card-visual .shot{ filter:saturate(.72) contrast(1.04); transition:filter .5s var(--ease),transform .8s var(--ease); }
.pf-card:hover .shot{ filter:saturate(1) contrast(1.06); transform:scale(1.035); }
.invest-card-featured{ background:linear-gradient(145deg,rgba(197,162,83,.14),#0e0d0b 48%); }
.invest-price strong,.invest-anchor{ color:var(--patina-bright); }
.loader{ background:#070706; }
.loader-weave path{ stroke:var(--ink); }
.loader-word{ color:var(--ink); }
.orb{ opacity:.13; filter:blur(95px); }
.orb-1,.orb-2{ background:radial-gradient(circle,var(--patina-bright),transparent 70%); }
.whatsapp-fab{ background:#C5A253; }
.whatsapp-fab .pulse{ background:#C5A253; }
.floating-cta{ background:var(--ink); color:#090806; }
.floating-cta:hover{ background:var(--patina-bright); }
.cursor-dot{ background:var(--patina-bright); }
.cursor-ring{ border-color:var(--patina); }
.cursor-ring.is-view{ background:var(--patina); border-color:var(--patina); color:#080808; }
.thread-line path{ stroke:var(--patina-bright); }

/* serviços exploráveis */
.service-list{ margin-top:58px; border-bottom:1px solid var(--paper-line); }
.service-item{
  position:relative; display:grid; grid-template-columns:72px minmax(180px,.8fr) 1.2fr 32px;
  gap:28px; align-items:center; min-height:118px; border-top:1px solid var(--paper-line);
  transition:padding .45s var(--ease),background .45s var(--ease);
}
.service-item::before{
  content:''; position:absolute; inset:0; z-index:-1; opacity:0;
  background:linear-gradient(90deg,rgba(197,162,83,.12),transparent 72%); transition:opacity .4s;
}
.service-item:hover{ padding-inline:20px; }
.service-item:hover::before{ opacity:1; }
.service-num{ font-family:var(--font-mono); color:var(--patina); font-size:11px; }
.service-item h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(23px,2.7vw,36px); }
.service-item p{ color:var(--fog); line-height:1.7; font-size:14px; max-width:540px; }
.service-arrow{ color:var(--patina-bright); font-size:22px; transition:transform .4s var(--ease); }
.service-item:hover .service-arrow{ transform:translateX(7px) rotate(-22deg); }
.trust-card-index{ display:block; font-family:var(--font-mono); color:var(--patina); font-size:10px; margin-bottom:18px; }
.skip-link{ position:fixed; left:16px; top:-80px; z-index:6000; padding:10px 14px; background:var(--patina); color:#080808; transition:top .2s; }
.skip-link:focus{ top:16px; }
@media(max-width:860px){
  .nav-links{ background:#0E0D0B; }
  .service-item{ grid-template-columns:40px 1fr 24px; gap:16px; padding:26px 0; }
  .service-item p{ grid-column:2/4; }
  .hero::after{ font-size:32vw; bottom:.05em; }
  .hero-visual::before,.hero-visual::after{ animation:none; }
}
@media(prefers-reduced-motion:reduce){ .hero-visual::before,.hero-visual::after{ animation:none; } }

/* Refinamento comercial e acessível */
.profile-card{ margin-top:28px; display:flex; align-items:center; gap:16px; padding:18px; border:1px solid var(--paper-line-strong); background:var(--ink-2); }
.profile-placeholder{ flex:none; width:54px; height:54px; display:grid; place-items:center; border:1px solid var(--patina); font-family:var(--font-display); color:var(--patina-bright); }
.profile-card strong,.profile-card span{ display:block; }
.profile-card strong{ font-family:var(--font-display); font-size:17px; font-weight:500; }
.profile-card span{ margin-top:4px; color:var(--fog); font-size:12px; }
.profile-links{ display:flex; gap:14px; margin-top:10px; }
.profile-links a{ color:var(--patina-bright); font-family:var(--font-mono); font-size:11px; text-decoration:underline; text-underline-offset:3px; }
.pf-detail{ margin-top:10px; color:var(--fog); font-size:13px; line-height:1.65; }
.pf-desc strong,.pf-detail strong{ color:var(--ink); font-weight:500; }
.pf-card-visual .shot{ object-fit:cover; height:auto; }
.invest-button{ width:100%; justify-content:center; margin-top:20px; text-align:center; }
.invest-card{ display:flex; flex-direction:column; }
.invest-card .invest-button{ margin-top:auto; transform:translateY(20px); }
@media(max-width:860px){
  .section-pad{ padding:68px 0; }
  .pf-pin{ height:auto; margin-top:44px; }
  .pf-pin-inner{ position:static; height:auto; overflow:visible; }
  .pf-track{ display:grid; grid-template-columns:1fr; gap:42px; padding:0 24px; transform:none; }
  .pf-card{ width:100%; max-width:none; flex-basis:auto; }
  .pf-scroll-hint{ display:none; }
  .invest-card .invest-button{ transform:none; }
}
