/* ============================================================
   PAVANI ESTÉTICA AVANÇADA
   Sistema visual: cream, ouro velho e preto quente
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Marcellus&family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&family=Jost:wght@200;300;400;500&display=swap');

:root{
  /* cor */
  --ink:        #0C0A09;
  --ink-2:      #14100D;
  --ink-3:      #1E1813;
  --cream:      #F5EFE6;
  --cream-2:    #EDE3D5;
  --cream-3:    #E2D4C1;
  --gold:       #B98F52;
  --gold-lt:    #E0BE86;
  --gold-dp:    #8C6835;
  --taupe:      #8B7A68;
  --taupe-lt:   #B9A891;

  /* tipografia */
  --display: 'Marcellus', 'Times New Roman', serif;
  --accent:  'Cormorant Garamond', Georgia, serif;
  --body:    'Jost', 'Helvetica Neue', sans-serif;

  /* ritmo */
  --nav-h: 64px;
  --gut: 22px;
  --maxw: 1180px;
  --r: 2px;

  /* movimento */
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --slow: .9s;
}

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

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--ink);
  color:var(--cream);
  font-family:var(--body);
  font-weight:300;
  font-size:16px;
  line-height:1.75;
  letter-spacing:.006em;
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

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

/* ---------- textura de grão global ---------- */
.grain{
  position:fixed; inset:-120px; z-index:9999; pointer-events:none;
  opacity:.045; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 7s steps(6) infinite;
}
@keyframes grainShift{
  0%{transform:translate(0,0)}  20%{transform:translate(-12px,8px)}
  40%{transform:translate(9px,-11px)} 60%{transform:translate(-7px,-6px)}
  80%{transform:translate(11px,10px)} 100%{transform:translate(0,0)}
}

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); }
.narrow{ max-width:640px; margin-inline:auto; }
section{ position:relative; }
.pad{ padding-block:clamp(72px,13vw,140px); }
.center{ text-align:center; }
body{ text-align:center; }

/* ---------- tipografia ---------- */
.eyebrow{
  font-family:var(--body); font-weight:400;
  font-size:11px; letter-spacing:.42em; text-transform:uppercase;
  color:var(--gold); margin:0 0 20px;
}
.eyebrow.dark{ color:var(--gold-dp); }

h1,h2,h3,h4{ font-family:var(--display); font-weight:400; line-height:1.12; margin:0; letter-spacing:.005em; }
h1{ font-size:clamp(38px,10.5vw,86px); }
h2{ font-size:clamp(29px,7.2vw,54px); }
h3{ font-size:clamp(21px,4.6vw,30px); }

.lead{
  font-family:var(--accent); font-size:clamp(18px,4.5vw,25px);
  line-height:1.58; font-weight:300; color:var(--taupe-lt);
  margin:18px auto 0; max-width:34ch;
}
.lead.dark{ color:var(--taupe); }
p{ margin:0 0 1.1em; }
.muted{ color:var(--taupe-lt); }
.muted.dark{ color:var(--taupe); }
em{ font-family:var(--accent); font-style:italic; }

.sec-cream{ background:var(--cream); color:var(--ink-2); }
.sec-cream h1,.sec-cream h2,.sec-cream h3,.sec-cream h4{ color:var(--ink); }
.sec-cream .lead,.sec-cream .muted,.sec-cream .step p,.sec-cream .benef p,.sec-cream p{ color:var(--taupe); }
.sec-cream .eyebrow{ color:var(--gold-dp); }
.sec-cream .step__n{ background:var(--cream); color:var(--gold-dp); border-color:rgba(140,104,53,.45); }
.sec-cream .steps::before{ background:linear-gradient(180deg,transparent,rgba(140,104,53,.45),transparent); }
.sec-cream .link-u{ color:var(--gold-dp); background-image:linear-gradient(var(--gold-dp),var(--gold-dp)); }

/* ---------- botões ---------- */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:12px;
  padding:17px 34px; border:1px solid var(--gold);
  font-size:11.5px; letter-spacing:.28em; text-transform:uppercase; font-weight:400;
  color:var(--gold-lt); border-radius:var(--r); overflow:hidden;
  transition:color .5s var(--ease), border-color .5s var(--ease);
  isolation:isolate;
}
.btn::before{
  content:''; position:absolute; inset:0; background:var(--gold); z-index:-1;
  transform:translateY(101%); transition:transform .55s var(--ease-out);
}
.btn:hover{ color:var(--ink); }
.btn:hover::before{ transform:translateY(0); }
.btn--solid{ background:var(--gold); color:var(--ink); border-color:var(--gold); }
.btn--solid::before{ background:var(--gold-lt); }
.btn--solid:hover{ color:var(--ink); }
.btn--dark{ border-color:var(--ink); color:var(--ink); }
.btn--dark::before{ background:var(--ink); }
.btn--dark:hover{ color:var(--cream); }
.btn .arrow{ transition:transform .5s var(--ease-out); }
.btn:hover .arrow{ transform:translateX(5px); }

.link-u{
  display:inline-block; font-size:11.5px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold); padding-bottom:5px; background-image:linear-gradient(var(--gold),var(--gold));
  background-size:0% 1px; background-repeat:no-repeat; background-position:50% 100%;
  transition:background-size .5s var(--ease-out);
}
.link-u:hover{ background-size:100% 1px; }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed; inset:0 0 auto; z-index:900; height:var(--nav-h);
  display:flex; align-items:center;
  transition:background .6s var(--ease), backdrop-filter .6s, height .5s var(--ease), border-color .6s;
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(12,10,9,.82); backdrop-filter:blur(14px) saturate(1.2);
  border-bottom-color:rgba(185,143,82,.22);
}
.nav__in{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut);
  display:flex; align-items:center; justify-content:space-between; gap:16px; }

.brand{ display:flex; align-items:center; gap:11px; }
.brand svg{ width:20px; height:26px; }
.brand__txt{ display:flex; flex-direction:column; align-items:flex-start; line-height:1; }
.brand__name{ font-family:var(--display); font-size:17px; letter-spacing:.3em; color:var(--cream); }
.brand__sub{ font-size:7.5px; letter-spacing:.32em; color:var(--gold); margin-top:5px; text-transform:uppercase; }

.nav__links{ display:none; }
.nav__cta{ display:none; }

.burger{ width:40px; height:40px; display:grid; place-items:center; margin-right:-8px; }
.burger span{ display:block; width:22px; height:1px; background:var(--cream); position:relative; transition:background .3s; }
.burger span::before,.burger span::after{
  content:''; position:absolute; left:0; width:22px; height:1px; background:var(--cream);
  transition:transform .45s var(--ease-out); }
.burger span::before{ top:-7px; } .burger span::after{ top:7px; }
.menu-open .burger span{ background:transparent; }
.menu-open .burger span::before{ transform:translateY(7px) rotate(45deg); }
.menu-open .burger span::after{ transform:translateY(-7px) rotate(-45deg); }

/* drawer mobile */
.drawer{
  position:fixed; inset:0; z-index:880; background:var(--ink);
  display:flex; flex-direction:column; justify-content:center; align-items:center; gap:0;
  padding:calc(var(--nav-h) + 16px) var(--gut) 34px;
  clip-path:inset(0 0 100% 0); transition:clip-path .8s var(--ease-out);
  overflow-y:auto; overscroll-behavior:contain;
}
.drawer::before{
  content:''; position:absolute; left:50%; top:-30%; translate:-50% 0;
  width:130%; aspect-ratio:1; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle,rgba(185,143,82,.10),transparent 62%);
}
.menu-open .drawer{ clip-path:inset(0 0 0 0); }
.drawer a{
  position:relative; font-family:var(--display); font-size:clamp(19px,5.4vw,27px); color:var(--cream);
  padding:8px 0; opacity:0; transform:translateY(22px);
  transition:opacity .6s var(--ease), transform .6s var(--ease-out), color .3s;
}
.drawer a:hover{ color:var(--gold-lt); }
.menu-open .drawer a{ opacity:1; transform:none; }
.drawer a:nth-of-type(1){transition-delay:.14s}.drawer a:nth-of-type(2){transition-delay:.19s}
.drawer a:nth-of-type(3){transition-delay:.24s}.drawer a:nth-of-type(4){transition-delay:.29s}
.drawer a:nth-of-type(5){transition-delay:.34s}.drawer a:nth-of-type(6){transition-delay:.39s}
.drawer a:nth-of-type(7){transition-delay:.44s}.drawer a:nth-of-type(8){transition-delay:.49s}
.drawer a:nth-of-type(9){transition-delay:.54s}
.drawer .drawer__foot{ margin-top:24px; opacity:0; transition:opacity .6s .6s; position:relative; }
.drawer .drawer__foot .btn{ font-size:10.5px; letter-spacing:.2em; padding:16px 30px; }
.drawer__sep{ width:26px; height:1px; background:rgba(185,143,82,.4); margin:14px auto; opacity:0; transition:opacity .5s .3s; }
.menu-open .drawer__sep{ opacity:1; }
.menu-open .drawer .drawer__foot{ opacity:1; }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column;
  justify-content:flex-end; align-items:center; overflow:hidden;
  padding-top:calc(var(--nav-h) + 10px);
  background:
    radial-gradient(120% 78% at 50% 8%, #241B12 0%, rgba(20,16,13,0) 62%),
    radial-gradient(80% 46% at 50% 96%, rgba(185,143,82,.28) 0%, rgba(12,10,9,0) 70%),
    linear-gradient(180deg,#0C0A09 0%,#15100C 48%,#0C0A09 100%);
}
/* halo suave atrás do retrato, sem moldura */
.hero__halo{
  position:absolute; left:50%; bottom:2%; translate:-50% 0;
  width:min(118vw,760px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle,rgba(224,190,134,.20) 0%,rgba(185,143,82,.08) 42%,rgba(12,10,9,0) 68%);
  filter:blur(8px); pointer-events:none;
  animation:halo 9s ease-in-out infinite alternate;
}
@keyframes halo{ from{ opacity:.75; transform:scale(.96);} to{ opacity:1; transform:scale(1.06);} }

.hero__ring{
  position:absolute; left:50%; bottom:6%; translate:-50% 0;
  width:min(96vw,620px); aspect-ratio:1; border-radius:50%;
  border:1px solid rgba(185,143,82,.20); pointer-events:none;
  animation:spin 46s linear infinite;
}
.hero__ring::after{
  content:''; position:absolute; inset:9%; border-radius:50%;
  border:1px dashed rgba(185,143,82,.16);
  animation:spin 70s linear infinite reverse;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* marca d'água tipográfica */
.hero__watermark{
  position:absolute; left:50%; top:auto; bottom:24%; translate:-50% 0;
  font-family:var(--display); font-size:clamp(76px,25vw,260px); line-height:.8;
  letter-spacing:.06em; white-space:nowrap; pointer-events:none;
  color:transparent; -webkit-text-stroke:1px rgba(185,143,82,.17);
  opacity:0; animation:wmIn 2s 1.1s var(--ease-out) forwards;
}
@keyframes wmIn{ from{opacity:0; letter-spacing:.22em;} to{opacity:1; letter-spacing:.06em;} }

.hero__copy{ position:relative; z-index:3; padding-inline:var(--gut); width:100%; max-width:720px; margin-inline:auto; }
.hero h1{ font-size:clamp(36px,10vw,74px); line-height:1.07; }
.hero h1 .ital{ font-family:var(--accent); font-style:italic; color:var(--gold-lt); }

.hero__photo{
  position:relative; z-index:2; width:min(84vw,400px); margin:10px auto 0;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 62%,rgba(0,0,0,.42) 80%,transparent 94%);
  mask-image:linear-gradient(180deg,#000 0%,#000 62%,rgba(0,0,0,.42) 80%,transparent 94%);
  filter:drop-shadow(0 40px 60px rgba(0,0,0,.6));
  opacity:0; transform:translateY(46px) scale(1.03);
  animation:photoIn 1.5s .5s var(--ease-out) forwards;
}
@keyframes photoIn{ to{ opacity:1; transform:none; } }

.hero__actions{
  position:relative; z-index:5; display:flex; gap:12px; justify-content:center;
  flex-wrap:wrap; margin-top:-70px; padding:0 var(--gut) 34px;
  flex-direction:column; align-items:center;
}
.hero__scroll{
  display:none; position:absolute; left:50%; bottom:16px; translate:-50% 0; z-index:4;
  font-size:9px; letter-spacing:.34em; text-transform:uppercase; color:var(--taupe);
  flex-direction:column; align-items:center; gap:9px;
}
.hero__scroll i{ display:block; width:1px; height:38px; background:linear-gradient(var(--gold),transparent); }
.hero__scroll i::after{
  content:''; display:block; width:1px; height:12px; background:var(--gold-lt);
  animation:trickle 2.2s var(--ease) infinite;
}
@keyframes trickle{ 0%{transform:translateY(-12px);opacity:0} 40%{opacity:1} 100%{transform:translateY(38px);opacity:0} }

/* entrada em cascata */
.rise{ opacity:0; transform:translateY(26px); animation:rise 1.1s var(--ease-out) forwards; }
@keyframes rise{ to{ opacity:1; transform:none; } }
.d1{animation-delay:.15s}.d2{animation-delay:.3s}.d3{animation-delay:.45s}.d4{animation-delay:.6s}.d5{animation-delay:.75s}

/* ============================================================
   MARQUEE
   ============================================================ */
.marquee{
  border-block:1px solid rgba(185,143,82,.22); background:var(--ink-2);
  overflow:hidden; padding-block:15px;
}
.marquee__track{ display:flex; width:max-content; animation:slide 34s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee span{
  font-size:10.5px; letter-spacing:.36em; text-transform:uppercase; color:var(--taupe-lt);
  padding-inline:22px; display:inline-flex; align-items:center; gap:22px; white-space:nowrap;
}
.marquee span::after{ content:''; width:4px; height:4px; rotate:45deg; background:var(--gold); }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* ============================================================
   DIVISÓRIA ORNAMENTAL
   ============================================================ */
.orn{ display:flex; align-items:center; justify-content:center; gap:16px; padding-block:6px; }
.orn i{
  display:block; height:1px; width:min(30vw,190px);
  background:linear-gradient(90deg,transparent,var(--gold));
  transform:scaleX(0); transform-origin:right center;
  transition:transform 1.3s var(--ease-out);
}
.orn i+i{ background:linear-gradient(90deg,var(--gold),transparent); transform-origin:left center; }
.orn.in i{ transform:scaleX(1); }
.orn__mark{
  width:34px; height:34px; display:grid; place-items:center; flex:0 0 auto;
  opacity:0; transform:rotate(-90deg) scale(.5); transition:all 1s .25s var(--ease-out);
}
.orn.in .orn__mark{ opacity:1; transform:none; }
.orn__mark svg{ width:100%; height:100%; }
.orn--big{ padding-block:26px; }

/* faixa divisória com brilho passante */
.split{
  position:relative; height:1px; background:rgba(185,143,82,.22); overflow:hidden;
}
.split::after{
  content:''; position:absolute; top:0; left:-30%; width:30%; height:100%;
  background:linear-gradient(90deg,transparent,var(--gold-lt),transparent);
  animation:sweep 5.5s var(--ease) infinite;
}
@keyframes sweep{ 0%{left:-30%} 60%,100%{left:100%} }

/* ============================================================
   SOBRE
   ============================================================ */
.sobre__figure{
  position:relative; width:min(86vw,380px); margin:0 auto 34px;
}
.sobre__figure img{
  position:relative; z-index:2;
  -webkit-mask-image:linear-gradient(180deg,#000 60%,rgba(0,0,0,.55) 82%,transparent 99%);
  mask-image:linear-gradient(180deg,#000 60%,rgba(0,0,0,.55) 82%,transparent 99%);
  filter:drop-shadow(0 26px 34px rgba(60,44,26,.18));
}
/* circulo ornamental, nao moldura */
.sobre__figure::before{
  content:''; position:absolute; left:50%; top:14%; translate:-50% 0;
  width:104%; aspect-ratio:1; border-radius:50%;
  border:1px solid rgba(140,104,53,.34); z-index:1;
  -webkit-mask-image:linear-gradient(180deg,#000 58%,transparent 88%);
  mask-image:linear-gradient(180deg,#000 58%,transparent 88%);
}
.sobre__figure::after{
  content:''; position:absolute; left:50%; top:18%; translate:-50% 0;
  width:88%; aspect-ratio:1; border-radius:50%; z-index:0;
  background:radial-gradient(circle,rgba(185,143,82,.20) 0%,rgba(185,143,82,.05) 52%,transparent 72%);
  animation:halo 9s ease-in-out infinite alternate;
}
.sobre__sig{
  font-family:var(--accent); font-style:italic; font-size:clamp(26px,7vw,38px);
  color:var(--gold-dp); margin-top:26px;
}

/* ---------- numeros ---------- */
.figures{
  margin-top:54px; display:grid; gap:0;
  border-top:1px solid rgba(140,104,53,.3);
  border-bottom:1px solid rgba(140,104,53,.3);
}
.figure{ position:relative; padding:30px 12px; }
.figure + .figure{ border-top:1px solid rgba(140,104,53,.22); }
.figure::before{
  content:''; position:absolute; left:50%; top:-1px; translate:-50% 0;
  width:0; height:1px; background:var(--gold);
  transition:width 1.1s var(--ease-out);
}
.figures.in .figure::before{ width:62px; }
.figures.in .figure:nth-child(2)::before{ transition-delay:.14s; }
.figures.in .figure:nth-child(3)::before{ transition-delay:.28s; }
.figure__n{
  display:block; font-family:var(--display); line-height:1;
  font-size:clamp(38px,10vw,52px); color:var(--gold-dp);
  letter-spacing:.01em;
}
.figure__n i{ font-style:normal; font-size:.5em; vertical-align:.55em; margin-left:2px; opacity:.75; }
.figure__l{
  display:block; margin-top:13px;
  font-size:9.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--taupe);
}

/* ============================================================
   EMPILHAMENTO DE CARDS
   ============================================================ */
.stack{ position:relative; }
.stack__item{ position:sticky; top:calc(var(--nav-h) + 12px + var(--i,0) * 9px); padding-bottom:18px; will-change:transform; }
.card{
  position:relative; overflow:hidden; border-radius:4px;
  transform-origin:50% 42%; transition:box-shadow .4s var(--ease);
  border:1px solid rgba(185,143,82,.26);
  background:#100D0B;
  padding:44px 24px 38px; text-align:center;
  box-shadow:0 -18px 40px rgba(0,0,0,.55);
}
.card::before{
  content:''; position:absolute; inset:0; z-index:2;
  background:radial-gradient(90% 60% at 50% 0%,rgba(185,143,82,.14),transparent 65%);
  pointer-events:none;
}

/* foto de fundo do card */
.card__bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.card__bg img{
  width:100%; height:100%; object-fit:cover; object-position:50% 50%;
  filter:saturate(.74) contrast(1.04) sepia(.18) brightness(.98);
  transform:scale(1.06);
  transition:transform 1.6s var(--ease-out), filter 1.2s var(--ease);
}
.card:hover .card__bg img{ transform:scale(1.13); filter:saturate(.8) contrast(1.06) sepia(.1); }
.card__veil{
  position:absolute; inset:0; display:block;
  background:
    radial-gradient(84% 70% at 50% 46%, rgba(13,10,8,.5) 0%, rgba(11,9,7,.88) 88%),
    linear-gradient(180deg, rgba(11,9,7,.78) 0%, rgba(11,9,7,.44) 42%, rgba(11,9,7,.44) 60%, rgba(11,9,7,.86) 100%);
  transition:opacity .8s var(--ease);
}
.card:hover .card__veil{ opacity:.9; }
.card__in{ position:relative; z-index:3; text-shadow:0 1px 14px rgba(8,6,5,.7); }
.card__num{
  font-family:var(--display); font-size:12px; letter-spacing:.3em; color:var(--gold-dp);
  display:block; margin-bottom:20px;
}
.card__ico{ width:52px; height:52px; margin:0 auto 22px; color:var(--gold); }
.card__ico svg{ width:100%; height:100%; }
.card h3{ color:var(--cream); }
.card p{ color:var(--taupe-lt); font-size:15px; margin:14px auto 26px; max-width:38ch; }
.card__tags{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-bottom:30px; }
.card__tags span{
  font-size:9.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--taupe);
  border:1px solid rgba(185,143,82,.28); border-radius:999px; padding:6px 13px;
}

/* ============================================================
   APARELHO / TECNOLOGIA
   ============================================================ */
.device{ position:relative; width:min(86vw,420px); margin:0 auto; aspect-ratio:1; }
.device svg{ width:100%; height:100%; overflow:hidden; }
.device svg *{ transform-box:view-box; }

.dv-ring{ transform-origin:200px 200px; animation:spin 30s linear infinite; }
.dv-ring--r{ animation:spin 44s linear infinite reverse; }
.dv-wave{ transform-origin:200px 232px; opacity:0; animation:wave 3.4s var(--ease-out) infinite; }
.dv-wave:nth-of-type(2){ animation-delay:.85s; }
.dv-wave:nth-of-type(3){ animation-delay:1.7s; }
.dv-wave:nth-of-type(4){ animation-delay:2.55s; }
@keyframes wave{
  0%{ opacity:0; transform:scale(.28); }
  22%{ opacity:.85; }
  100%{ opacity:0; transform:scale(1.5); }
}
.dv-hand{ animation:hover 5.5s var(--ease) infinite alternate; transform-origin:200px 150px; }
@keyframes hover{ from{ transform:translateY(-7px) rotate(-1.4deg);} to{ transform:translateY(7px) rotate(1.4deg);} }
.dv-glow{ animation:glowPulse 2.6s var(--ease) infinite; transform-origin:200px 228px; }
@keyframes glowPulse{ 0%,100%{ opacity:.35; transform:scale(.9);} 50%{ opacity:.95; transform:scale(1.12);} }
.dv-spark{ opacity:0; animation:spark 4s var(--ease) infinite; }
.dv-spark:nth-of-type(2){ animation-delay:1.1s } .dv-spark:nth-of-type(3){ animation-delay:2.2s }
.dv-spark:nth-of-type(4){ animation-delay:3s }
@keyframes spark{ 0%{opacity:0; transform:translateY(0)} 30%{opacity:1} 100%{opacity:0; transform:translateY(-46px)} }
.dv-scan{ animation:scan 4.4s var(--ease) infinite; }
@keyframes scan{ 0%,100%{ transform:translateY(-26px); opacity:.15 } 50%{ transform:translateY(26px); opacity:.6 } }

.tech-list{ display:grid; gap:26px; margin-top:52px; padding:0; }
.tech-list li{ list-style:none; }
.tech-list h4{ font-size:17px; letter-spacing:.02em; }
.tech-list p{ font-size:14.5px; color:var(--taupe); margin:8px auto 0; max-width:34ch; }
.tech-list .dot{ display:block; width:5px; height:5px; rotate:45deg; background:var(--gold); margin:0 auto 16px; }

/* ============================================================
   MÉTODO
   ============================================================ */
.steps{ position:relative; display:grid; gap:52px; margin-top:56px; }
.steps::before{
  content:''; position:absolute; left:50%; top:0; width:1px; height:100%;
  background:linear-gradient(180deg,transparent,rgba(185,143,82,.4),transparent);
  transform:scaleY(0); transform-origin:top; transition:transform 1.6s var(--ease-out);
}
.steps.in::before{ transform:scaleY(1); }
.step{ position:relative; }
.step__n{
  width:52px; height:52px; margin:0 auto 20px; border-radius:50%;
  border:1px solid rgba(185,143,82,.4); background:var(--ink);
  display:grid; place-items:center; font-family:var(--display); font-size:16px; color:var(--gold-lt);
  position:relative; z-index:2;
}
.step h4{ font-size:19px; }
.step p{ font-size:14.5px; color:var(--taupe-lt); margin:10px auto 0; max-width:32ch; }

/* ============================================================
   GALERIA
   ============================================================ */
.gal{ display:grid; grid-template-columns:1fr; gap:14px; margin-top:48px; }
.gal figure{ margin:0; position:relative; overflow:hidden; }
.gal img{ width:100%; transition:transform 1.2s var(--ease-out), filter .8s; filter:saturate(.88) contrast(1.02); }
.gal figure:hover img{ transform:scale(1.05); filter:saturate(1) contrast(1.05); }
.gal figure::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,rgba(12,10,9,0) 55%,rgba(12,10,9,.5) 100%);
}
.gal figcaption{
  position:absolute; left:0; right:0; bottom:16px; z-index:2;
  font-size:9.5px; letter-spacing:.28em; text-transform:uppercase; color:var(--cream);
}

/* ---------- serum e depoimentos ---------- */
.serum{ overflow:hidden; }
.serum__cut{
  width:min(66vw,280px); margin:0 auto 30px;
  -webkit-mask-image:linear-gradient(180deg,#000 60%,rgba(0,0,0,.35) 86%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 60%,rgba(0,0,0,.35) 86%,transparent 100%);
  filter:drop-shadow(0 24px 32px rgba(60,44,26,.16));
}
.depo{ overflow:hidden; }
.depo__cut{
  position:absolute; right:-16%; bottom:0; width:min(74vw,420px); opacity:.14; z-index:1;
  -webkit-mask-image:linear-gradient(200deg,#000 20%,transparent 78%);
  mask-image:linear-gradient(200deg,#000 20%,transparent 78%);
  pointer-events:none;
}

/* ============================================================
   DEPOIMENTOS
   ============================================================ */
.quotes{ position:relative; min-height:250px; }
.quote{
  position:absolute; inset:0; opacity:0; transform:translateY(14px);
  transition:opacity .9s var(--ease), transform .9s var(--ease-out); pointer-events:none;
}
.quote.on{ opacity:1; transform:none; position:relative; pointer-events:auto; }
.quote p{
  font-family:var(--accent); font-style:italic; font-size:clamp(20px,5.4vw,28px);
  line-height:1.55; color:var(--cream); max-width:26ch; margin:0 auto 22px;
}
.quote cite{
  font-style:normal; font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold);
}
.dots{ display:flex; justify-content:center; gap:9px; margin-top:36px; }
.dots button{ width:6px; height:6px; rotate:45deg; background:rgba(185,143,82,.3); transition:background .4s, transform .4s; }
.dots button.on{ background:var(--gold); transform:rotate(45deg) scale(1.5); }

/* ============================================================
   CTA / RODAPÉ
   ============================================================ */
.cta{
  position:relative; overflow:hidden;
  background:
    radial-gradient(90% 60% at 50% 100%, rgba(185,143,82,.22), rgba(12,10,9,0) 70%),
    linear-gradient(180deg,#0C0A09,#15100C);
}
.cta__glow{
  position:absolute; left:50%; bottom:-40%; translate:-50% 0; width:min(130vw,900px); aspect-ratio:1;
  border-radius:50%; background:radial-gradient(circle,rgba(185,143,82,.16),transparent 62%);
  animation:halo 8s ease-in-out infinite alternate; pointer-events:none;
}

.foot{ background:var(--ink); border-top:1px solid rgba(185,143,82,.18); padding-block:56px 34px; }
.foot__brand svg{ width:30px; height:38px; margin:0 auto 18px; color:var(--gold); }
.foot__name{ font-family:var(--display); font-size:22px; letter-spacing:.34em; }
.foot__sub{ font-size:8.5px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); margin-top:8px; }
.foot__nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px 24px; margin:36px auto 30px; max-width:520px; }
.foot__nav a{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--taupe-lt); transition:color .35s; }
.foot__nav a:hover{ color:var(--gold-lt); }
.foot__meta{ font-size:11px; color:var(--taupe); letter-spacing:.05em; line-height:2; }
.foot__meta a{ color:var(--taupe); border-bottom:1px solid rgba(185,143,82,.3); }
.social{ display:flex; justify-content:center; gap:14px; margin:26px 0; }
.social a{
  width:42px; height:42px; border:1px solid rgba(185,143,82,.3); border-radius:50%;
  display:grid; place-items:center; color:var(--gold); transition:all .45s var(--ease);
}
.social a:hover{ background:var(--gold); color:var(--ink); transform:translateY(-3px); }
.social svg{ width:17px; height:17px; }

/* ---------- whatsapp flutuante ---------- */
.wa{
  position:fixed; right:16px; bottom:16px; z-index:800;
  width:54px; height:54px; border-radius:50%; display:grid; place-items:center;
  background:var(--gold); color:var(--ink);
  box-shadow:0 10px 30px rgba(0,0,0,.45);
  transform:scale(0); transition:transform .6s var(--ease-out), background .35s;
}
.wa.on{ transform:scale(1); }
.wa:hover{ background:var(--gold-lt); }
.wa svg{ width:25px; height:25px; }
.wa::after{
  content:''; position:absolute; inset:0; border-radius:50%; border:1px solid var(--gold);
  animation:ripple 2.6s var(--ease-out) infinite;
}
@keyframes ripple{ 0%{ transform:scale(1); opacity:.7 } 100%{ transform:scale(1.7); opacity:0 } }

/* ============================================================
   REVEAL ON SCROLL
   ============================================================ */
.rv{ opacity:0; transform:translateY(30px); transition:opacity 1s var(--ease), transform 1.05s var(--ease-out); }
.rv.in{ opacity:1; transform:none; }
.rv-blur{ opacity:0; filter:blur(9px); transform:translateY(20px);
  transition:opacity 1.1s var(--ease), filter 1.1s var(--ease), transform 1.1s var(--ease-out); }
.rv-blur.in{ opacity:1; filter:none; transform:none; }
.rv-scale{ opacity:0; transform:scale(1.06); transition:opacity 1.2s var(--ease), transform 1.4s var(--ease-out); }
.rv-scale.in{ opacity:1; transform:none; }

/* revelação de linhas do título */
.lines span{ display:block; overflow:hidden; }
.lines span > b{
  display:block; font-weight:inherit; transform:translateY(105%);
  transition:transform 1.1s var(--ease-out);
}
.lines.in span > b{ transform:none; }
.lines.in span:nth-child(2) > b{ transition-delay:.1s }
.lines.in span:nth-child(3) > b{ transition-delay:.2s }

/* ============================================================
   PÁGINA DE PROCEDIMENTO
   ============================================================ */
.php .lead{ max-width:44ch; }
.php{
  position:relative; overflow:hidden; padding-top:calc(var(--nav-h) + 74px); padding-bottom:66px;
  background:
    radial-gradient(110% 70% at 50% 0%, #241B12 0%, rgba(12,10,9,0) 62%),
    linear-gradient(180deg,#0C0A09,#120E0B);
}
.php__ico{ width:64px; height:64px; margin:0 auto 26px; color:var(--gold); }
.crumb{ font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--taupe); margin-bottom:26px; }
.crumb a{ color:var(--taupe); } .crumb a:hover{ color:var(--gold); }
.meta{ display:flex; flex-wrap:wrap; justify-content:center; gap:0; margin-top:46px;
  border-top:1px solid rgba(185,143,82,.2); border-bottom:1px solid rgba(185,143,82,.2); }
.meta div{ flex:1 1 33%; min-width:110px; padding:22px 10px; }
.meta div+div{ border-left:1px solid rgba(185,143,82,.2); }
.meta dt{ font-size:9px; letter-spacing:.26em; text-transform:uppercase; color:var(--taupe); }
.meta dd{ margin:9px 0 0; font-family:var(--display); font-size:17px; color:var(--gold-lt); }

.bullets{ display:grid; gap:1px; margin-top:44px; padding:0; background:rgba(140,104,53,.22); border-block:1px solid rgba(140,104,53,.22); }
.bullets li{ list-style:none; background:var(--cream); padding:22px 16px; font-size:15px; }
.bullets li b{ display:block; font-family:var(--display); font-weight:400; font-size:17px; color:var(--ink); margin-bottom:6px; }
.bullets li span{ color:var(--taupe); font-size:14px; }

.benef{ display:grid; gap:16px; margin-top:46px; padding:0; }
.benef li{ list-style:none; border:1px solid rgba(185,143,82,.24); padding:26px 18px; position:relative; overflow:hidden; }
.benef li::after{
  content:''; position:absolute; inset:auto 0 0 0; height:1px; background:var(--gold);
  transform:scaleX(0); transform-origin:left; transition:transform .7s var(--ease-out);
}
.benef li:hover::after{ transform:scaleX(1); }
.benef .k{ font-family:var(--display); font-size:13px; letter-spacing:.28em; color:var(--gold-dp); }
.benef h4{ font-size:18px; margin-top:12px; }
.benef p{ font-size:14px; color:var(--taupe); margin:8px 0 0; }

.faq{ margin-top:44px; }
.faq details{ border-bottom:1px solid rgba(185,143,82,.24); }
.faq summary{
  list-style:none; cursor:pointer; padding:22px 38px; position:relative;
  font-family:var(--display); font-size:17px; line-height:1.4; transition:color .35s;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:''; position:absolute; right:8px; top:29px; width:11px; height:11px;
  border-right:1px solid var(--gold); border-bottom:1px solid var(--gold);
  transform:rotate(45deg); transition:transform .45s var(--ease-out);
}
.faq details[open] summary::after{ transform:rotate(-135deg); }
.faq summary:hover{ color:var(--gold-lt); }
.faq .ans{ padding:0 10px 26px; font-size:15px; color:var(--taupe-lt); max-width:44ch; margin-inline:auto;
  animation:ansIn .55s var(--ease-out); }
@keyframes ansIn{ from{ opacity:0; transform:translateY(-8px);} to{ opacity:1; transform:none;} }

.others{ display:grid; gap:12px; margin-top:44px; }
.others a{
  display:block; border:1px solid rgba(185,143,82,.24); padding:26px 20px 22px;
  transition:all .45s var(--ease);
}
.others a:hover{ border-color:var(--gold); background:rgba(185,143,82,.06); transform:translateY(-3px); }
.others .t{ display:block; font-family:var(--display); font-size:18px; }
.others .s{ display:block; font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--taupe); margin-top:8px; }
.others .ar{ display:block; color:var(--gold); font-size:20px; line-height:1; margin-top:14px;
  transition:transform .45s var(--ease-out); }
.others a:hover .ar{ transform:translateY(3px) rotate(90deg); }

/* ============================================================
   BREAKPOINTS
   ============================================================ */
@media (min-width:600px){
  .gal{ grid-template-columns:1fr 1fr; gap:16px; }
  .benef{ grid-template-columns:1fr 1fr; }
  .bullets{ grid-template-columns:1fr 1fr; }
  .figures{ grid-template-columns:repeat(3,1fr); }
  .figure + .figure{ border-top:0; border-left:1px solid rgba(140,104,53,.22); }
  .card{ padding:52px 40px 44px; }
}

@media (min-width:900px){
  :root{ --nav-h:82px; --gut:40px; }
  body{ font-size:17px; }
  .nav__links{ display:flex; align-items:center; gap:30px; }
  .nav__links a{
    font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--taupe-lt);
    position:relative; padding-block:6px; transition:color .4s;
  }
  .nav__links a::after{
    content:''; position:absolute; left:0; bottom:0; width:100%; height:1px; background:var(--gold);
    transform:scaleX(0); transform-origin:right; transition:transform .5s var(--ease-out);
  }
  .nav__links a:hover{ color:var(--cream); }
  .nav__links a:hover::after{ transform:scaleX(1); transform-origin:left; }
  .nav__cta{ display:inline-flex; padding:13px 24px; font-size:10px; }
  .burger{ display:none; }
  .brand svg{ width:24px; height:31px; }
  .brand__name{ font-size:19px; }

  .hero{ justify-content:center; padding-top:calc(var(--nav-h) + 10px); }
  .hero__copy{ max-width:860px; }
  .hero__photo{ width:auto; height:min(44vh,430px); margin:4px auto 0; }
  .hero__actions{ margin-top:-72px; padding-bottom:66px; gap:22px; flex-direction:row; align-items:center; }
  .hero__scroll{ display:flex; }
  .hero__watermark{ top:auto; bottom:15%; }

  .figure{ padding:40px 16px; }
  .tech-list{ grid-template-columns:repeat(3,1fr); gap:38px; }
  .steps{ grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:34px; margin-top:70px; }
  .steps::before{ left:0; top:26px; width:100%; height:1px;
    background:linear-gradient(90deg,transparent,rgba(185,143,82,.4),transparent);
    transform:scaleX(0); transform-origin:left; }
  .sec-cream .steps::before{ background:linear-gradient(90deg,transparent,rgba(140,104,53,.45),transparent); }
  .steps.in::before{ transform:scaleX(1); }
  .gal{ grid-template-columns:1fr 1fr; gap:22px; }
  .serum__cut{ width:300px; }
  .depo__cut{ right:-4%; width:400px; opacity:.16; }
  .others{ grid-template-columns:repeat(2,1fr); }
  .bullets{ grid-template-columns:repeat(2,1fr); }
  .benef{ grid-template-columns:repeat(3,1fr); }
  .stack{ max-width:880px; margin-inline:auto; }
  .stack__item{ top:calc(var(--nav-h) + 22px + var(--i,0) * 12px); }
  .card{ padding:64px 56px 56px; }
  .php{ padding-top:calc(var(--nav-h) + 110px); padding-bottom:96px; }
  .wa{ right:28px; bottom:28px; width:60px; height:60px; }
}

@media (min-width:1200px){
  .hero__photo{ height:min(48vh,470px); }
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; }
  .rv,.rv-blur,.rv-scale{ opacity:1; transform:none; filter:none; }
  .lines span > b{ transform:none; }
}
