/* ==========================================================================
   VANESSA PETERSON PHOTOGRAPHY — Danbury, Connecticut
   Sistema v2: sem serifa. Geist variável do 200 ao 800 + Geist Mono nos metadados.
   A hierarquia vem de peso, escala e tracking — não de troca de família.
   Paleta monocromática: as fotos entram com toda a cor, a interface não compete.
   ========================================================================== */

/* ---------- 1. TOKENS ---------- */
:root{
  /* ambiente: o JS interpola ao longo do scroll, em faixa curta pra não virar show de cor */
  --amb:        #0B0C0D;
  --amb-tint:   120,132,142;

  --ink:        #0A0A0B;
  --ink-2:      #131415;
  --ink-3:      #1B1C1E;

  --paper:      #F3F3F1;
  --paper-2:    #E7E7E4;

  --text:       #FBFBFA;
  --dim:        #96979B;
  --dim-2:      #6A6C70;
  --text-ink:   #0E0F10;
  --dim-ink:    #6E7074;

  --accent:     #D9A464;          /* usado com parcimônia: medidor, timestamps, hover */
  --accent-ink: #8A5A1E;          /* variante que passa AA sobre claro */

  --line:       rgba(251,251,250,.10);
  --line-2:     rgba(251,251,250,.17);
  --line-ink:   rgba(14,15,16,.12);

  --f:      "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --f-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --pad: clamp(1.15rem, 4.6vw, 5rem);
  --gut: clamp(.85rem, 1.9vw, 1.75rem);
  --max: 1680px;

  --ease:   cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.76,0,.24,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
html:not(.lenis){ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--amb);
  color:var(--text);
  font-family:var(--f);
  font-size:clamp(.9375rem,.9rem + .18vw,1.0625rem);
  line-height:1.6;
  font-weight:380;
  letter-spacing:-.008em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  transition:background-color 1.1s linear;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
::selection{ background:var(--text); color:var(--ink); }

/* Lenis */
.lenis,.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-stopped{ overflow:hidden; }

/* ---------- 2. TIPOGRAFIA ---------- */
/* uma só família: a diferença é peso + tracking + escala */
.disp{
  font-weight:450;
  line-height:.98;
  letter-spacing:-.038em;
  margin:0;
  text-wrap:balance;
}
.disp em{ font-style:normal; font-weight:250; color:var(--dim); }
.on-paper .disp em{ color:var(--dim-ink); }

.d-xl{ font-size:clamp(2.35rem, .8rem + 7.1vw, 8.2rem); letter-spacing:-.045em; }
.d-lg{ font-size:clamp(2.1rem, 1rem + 4.4vw, 5rem);    letter-spacing:-.042em; }
.d-md{ font-size:clamp(1.65rem, 1rem + 2.5vw, 3.1rem); letter-spacing:-.036em; }
.d-sm{ font-size:clamp(1.25rem, 1rem + 1.1vw, 1.85rem);letter-spacing:-.028em; line-height:1.1; }

.lede{
  font-size:clamp(1.0625rem,.95rem + .82vw,1.6rem);
  line-height:1.38; letter-spacing:-.022em; font-weight:350;
  text-wrap:pretty;
}

.tag{
  font-family:var(--f-mono);
  font-size:.6875rem; font-weight:400;
  letter-spacing:.13em; text-transform:uppercase;
  color:var(--dim);
  display:flex; align-items:center; gap:.65em;
  margin:0;
}
.tag::before{ content:""; width:1.5em; height:1px; background:currentColor; opacity:.5; flex:none; }
.tag.no-rule::before{ display:none; }
.num{ font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.08em; color:var(--accent); }

.muted{ color:var(--dim); }
.on-paper .muted{ color:var(--dim-ink); }

/* ---------- 3. LAYOUT ---------- */
.wrap{ width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--pad); }
.sec{ position:relative; padding-block:clamp(5rem,10vw,11rem); }
.sec-tight{ padding-block:clamp(3.2rem,6vw,6rem); }

.on-paper{ background:var(--paper); color:var(--text-ink); }
.on-paper .tag{ color:var(--dim-ink); }
.on-paper .num{ color:var(--accent-ink); }

.rule{ height:1px; background:var(--line); border:0; margin:0; }
.on-paper .rule{ background:var(--line-ink); }

/* ---------- 4. AMBIENTE ---------- */
.atmos{ position:fixed; inset:0; z-index:0; pointer-events:none; }
.atmos__light{
  position:absolute; inset:-25%;
  background:
    radial-gradient(60% 42% at 76% 4%,  rgba(var(--amb-tint),.20), transparent 70%),
    radial-gradient(70% 46% at 8% 96%,  rgba(var(--amb-tint),.11), transparent 72%);
  mix-blend-mode:soft-light;
  transition:background 1.1s linear;
}
main, .foot{ position:relative; z-index:1; }

/* medidor de luz — detalhe silencioso, não ornamento */
.meter{
  position:fixed; left:clamp(.9rem,1.7vw,1.7rem); bottom:clamp(.9rem,1.7vw,1.7rem);
  z-index:60; display:flex; align-items:flex-end; gap:.55rem;
  font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.09em;
  color:var(--dim); pointer-events:none;
  transition:opacity .5s var(--ease);
  mix-blend-mode:difference;
}
.meter__bar{
  width:1px; height:56px; border-radius:1px; position:relative;
  background:linear-gradient(to top,#B9752E,#D8A863,#8FA6B4); opacity:.42;
}
.meter__dot{
  position:absolute; left:50%; width:5px; height:5px; border-radius:50%;
  background:var(--text); transform:translate(-50%,50%);
  bottom:var(--pos,50%); transition:bottom .6s var(--ease);
}
.meter__k{ line-height:1.4; padding-bottom:.05rem; }
.meter__k b{ display:block; font-weight:500; color:var(--text); font-size:.625rem; letter-spacing:.03em; }
@media (max-width:900px){ .meter{ display:none; } }

/* ---------- 5. NAV ---------- */
.nav{
  position:fixed; inset-inline:0; top:0; z-index:80;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:clamp(.85rem,1.5vw,1.4rem) var(--pad);
  border-bottom:1px solid transparent;
  transition:transform .55s var(--ease), background-color .45s var(--ease),
             backdrop-filter .45s, border-color .45s, padding .45s var(--ease);
}
.nav.is-stuck{
  background:color-mix(in srgb, var(--amb) 76%, transparent);
  backdrop-filter:blur(20px) saturate(1.3);
  -webkit-backdrop-filter:blur(20px) saturate(1.3);
  border-bottom-color:var(--line);
  padding-block:clamp(.55rem,1vw,.8rem);
}
.nav.is-hidden{ transform:translateY(-102%); }

.brand{ display:flex; align-items:center; gap:.65rem; flex:none; }
.brand__mark{
  width:30px; height:30px; flex:none; border-radius:50%;
  border:1px solid var(--line-2); display:grid; place-items:center;
  font-size:.625rem; font-weight:500; letter-spacing:.02em;
  transition:border-color .4s, background-color .4s;
}
.brand:hover .brand__mark{ border-color:var(--text); }
.brand__txt{ line-height:1.2; }
.brand__txt b{ display:block; font-weight:480; font-size:.8125rem; letter-spacing:-.018em; }
.brand__txt span{ font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.13em; color:rgba(251,251,250,.6); text-transform:uppercase; }
.nav.is-stuck .brand__txt span{ color:var(--dim-2); }

.nav__links{ display:flex; align-items:center; gap:clamp(.9rem,1.9vw,2rem); }
.nav__links a{
  font-size:.8125rem; font-weight:400; letter-spacing:-.01em;
  position:relative; padding-block:.3rem; color:rgba(251,251,250,.72);
  transition:color .3s;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:.05rem; height:1px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:right;
  transition:transform .45s var(--ease);
}
.nav__links a:hover{ color:var(--text); }
.nav__links a:hover::after{ transform:scaleX(1); transform-origin:left; }
.nav.is-stuck .nav__links a{ color:var(--dim); }
.nav.is-stuck .nav__links a:hover{ color:var(--text); }
@media (max-width:1060px){ .nav__links{ display:none; } }

.nav__side{ display:flex; align-items:center; gap:clamp(.5rem,1.1vw,.9rem); flex:none; }

.lang{ display:flex; align-items:center; gap:.05rem; font-family:var(--f-mono); font-size:.625rem; letter-spacing:.06em; }
.lang button{ padding:.3rem .38rem; color:rgba(251,251,250,.55); transition:color .3s; border-radius:2px; }
.lang button[aria-pressed="true"]{ color:var(--text); }
.lang button:hover{ color:var(--text); }
.lang i{ font-style:normal; opacity:.28; }
.nav.is-stuck .lang button{ color:var(--dim-2); }
.nav.is-stuck .lang button[aria-pressed="true"]{ color:var(--text); }

/* botões — pílula, monocromáticos */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.7rem 1.2rem; border-radius:100px;
  font-size:.8125rem; font-weight:480; letter-spacing:-.012em;
  border:1px solid var(--line-2); color:var(--text);
  transition:background-color .4s var(--ease), color .35s, border-color .4s, transform .35s var(--ease);
  white-space:nowrap;
}
.btn:hover{ background:var(--text); color:var(--ink); border-color:var(--text); }
.btn--solid{ background:var(--text); color:var(--ink); border-color:var(--text); }
.btn--solid:hover{ background:transparent; color:var(--text); border-color:var(--line-2); }
.btn--lg{ padding:.92rem 1.6rem; font-size:.875rem; }
.btn--ink{ border-color:var(--line-ink); color:var(--text-ink); }
.btn--ink:hover{ background:var(--text-ink); color:var(--paper); border-color:var(--text-ink); }
.btn--ink-solid{ background:var(--text-ink); color:var(--paper); border-color:var(--text-ink); }
.btn--ink-solid:hover{ background:transparent; color:var(--text-ink); }
.btn svg{ width:13px; height:13px; flex:none; transition:transform .4s var(--ease); }
.btn:hover svg{ transform:translateX(3px); }

.burger{ display:none; width:34px; height:34px; place-items:center; border:1px solid var(--line-2); border-radius:50%; }
.burger span{ display:block; width:13px; height:1px; background:currentColor; position:relative; transition:background-color .3s; }
.burger span::before,.burger span::after{ content:""; position:absolute; left:0; width:13px; height:1px; background:currentColor; transition:transform .4s var(--ease); }
.burger span::before{ top:-4px; } .burger span::after{ top:4px; }
body.menu-open .burger span{ background:transparent; }
body.menu-open .burger span::before{ transform:translateY(4px) rotate(45deg); }
body.menu-open .burger span::after{ transform:translateY(-4px) rotate(-45deg); }
@media (max-width:1060px){ .burger{ display:grid; } }

@media (max-width:760px){
  .nav .btn--solid{ display:none; }
  .brand__txt span{ display:none; }
}
@media (max-width:400px){ .brand__txt{ display:none; } }

.menu{
  position:fixed; inset:0; z-index:75; background:var(--ink);
  display:flex; flex-direction:column; justify-content:center; gap:0;
  padding:6rem var(--pad) 2rem;
  clip-path:inset(0 0 100% 0); transition:clip-path .7s var(--ease-io);
  visibility:hidden;
}
body.menu-open .menu{ clip-path:inset(0 0 0 0); visibility:visible; }
.menu a{
  font-size:clamp(1.9rem,8.4vw,2.9rem); line-height:1.22;
  font-weight:450; letter-spacing:-.04em;
  opacity:0; transform:translateY(14px);
  transition:opacity .5s var(--ease), transform .5s var(--ease), color .3s;
}
body.menu-open .menu a{ opacity:1; transform:none; }
.menu a:hover{ color:var(--dim); }
.menu__foot{ margin-top:auto; padding-top:1.8rem; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:.7rem 1.5rem; align-items:center; }
.menu__foot a{ font-size:.8125rem; opacity:1; transform:none; font-weight:400; }

/* barra fixa mobile */
.mbar{
  position:fixed; inset-inline:0; bottom:0; z-index:70; display:none;
  gap:.5rem; padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom));
  background:color-mix(in srgb, var(--amb) 86%, transparent);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-top:1px solid var(--line);
  transform:translateY(110%); transition:transform .5s var(--ease);
}
.mbar.is-on{ transform:none; }
.mbar .btn{ flex:1; padding-block:.82rem; }
.mbar .btn--icon{ flex:0 0 auto; width:46px; padding:0; }
.mbar .btn--icon svg{ width:16px; height:16px; }
body.menu-open .mbar{ transform:translateY(110%); }
@media (max-width:760px){ .mbar{ display:flex; } }

/* ---------- 6. HERO ---------- */
.hero{ position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; }
.hero__media{ position:absolute; inset:0; overflow:hidden; }
.hero__media img,
.hero__media video{ width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.hero__media video{ position:absolute; inset:0; opacity:0; transition:opacity 1.2s var(--ease); }
.hero__media video.is-on{ opacity:1; }
/* abertura: a moldura abre de dentro pra fora */
html.js .hero__media{ clip-path:inset(0 34% 0 34%); }
html.js.ready .hero__media{ transition:clip-path 1.5s var(--ease-io); clip-path:inset(0 0 0 0); }

.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(to top, rgba(8,8,9,.88) 0%, rgba(8,8,9,.42) 32%, rgba(8,8,9,.06) 58%, rgba(8,8,9,.30) 100%),
    linear-gradient(to right, rgba(8,8,9,.42) 0%, rgba(8,8,9,0) 58%);
}
@media (max-width:820px){
  .hero__scrim{
    background:linear-gradient(to top, rgba(8,8,9,.93) 0%, rgba(8,8,9,.84) 26%, rgba(8,8,9,.56) 44%, rgba(8,8,9,.18) 66%, rgba(8,8,9,.10) 80%, rgba(8,8,9,.5) 100%);
  }
  .hero{ padding-bottom:4.2rem; }
}

.hero__inner{ position:relative; padding:0 var(--pad) clamp(2.2rem,4.5vw,4rem); width:100%; max-width:var(--max); margin-inline:auto; }
.hero__eyebrow{ margin-bottom:clamp(1rem,2.2vw,1.7rem); color:rgba(251,251,250,.72); }
.hero h1{ margin:0; }
.hero h1 .ln{ display:block; overflow:hidden; padding-bottom:.06em; }
.hero h1 .ln > span{ display:block; }
html.js .hero h1 .ln > span{ transform:translateY(105%); }
html.js.ready .hero h1 .ln > span{ transition:transform 1.05s var(--ease); transform:none; }
html.js.ready .hero h1 .ln:nth-child(2) > span{ transition-delay:.08s; }

.hero__foot{
  margin-top:clamp(1.4rem,3vw,2.4rem);
  display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1.4rem 2rem;
}
.hero__foot p{ margin:0; max-width:40ch; color:rgba(251,251,250,.74); font-size:.9375rem; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.55rem; }
.hero__meta{
  position:absolute; right:var(--pad); top:clamp(5.5rem,11vh,8rem);
  font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(251,251,250,.5); text-align:right; line-height:2; writing-mode:vertical-rl;
}
@media (max-width:940px){ .hero__meta{ display:none; } }

.scroll-cue{
  position:absolute; left:50%; bottom:1rem; transform:translateX(-50%);
  font-family:var(--f-mono); font-size:.5rem; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(251,251,250,.45); display:flex; flex-direction:column; align-items:center; gap:.45rem;
}
.scroll-cue i{ display:block; width:1px; height:28px; background:linear-gradient(to bottom,currentColor,transparent); }
@media (max-width:940px){ .scroll-cue{ display:none; } }

/* ---------- 7. REVEAL ---------- */
html.js .rv{ opacity:0; transform:translateY(20px); }
html.js .rv.in{ opacity:1; transform:none; transition:opacity .9s var(--ease), transform 1s var(--ease); }
html.js .rv-d1.in{ transition-delay:.07s; }
html.js .rv-d2.in{ transition-delay:.14s; }
html.js .rv-d3.in{ transition-delay:.21s; }
html.js .clipr{ clip-path:inset(0 0 100% 0); }
html.js .clipr.in{ clip-path:inset(0 0 0 0); transition:clip-path 1.15s var(--ease-io); }
/* revelação por linha, com máscara */
html.js .maskr .ln{ display:block; overflow:hidden; padding-bottom:.06em; }
html.js .maskr .ln > span{ display:block; transform:translateY(104%); }
html.js .maskr.in .ln > span{ transform:none; transition:transform .95s var(--ease); }
html.js .maskr.in .ln:nth-child(2) > span{ transition-delay:.07s; }
html.js .maskr.in .ln:nth-child(3) > span{ transition-delay:.14s; }
@media (prefers-reduced-motion:reduce){
  html.js .rv, html.js .rv.in, html.js .clipr, html.js .clipr.in,
  html.js .maskr .ln > span, html.js .hero h1 .ln > span, html.js .hero__media{
    opacity:1!important; transform:none!important; clip-path:none!important; transition:none!important;
  }
}

/* ---------- 8. INTRO ---------- */
.stmt{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gut); align-items:start; }
.stmt__side{ grid-column:1/4; position:sticky; top:6.5rem; }
.stmt__body{ grid-column:5/12; }
@media (max-width:980px){
  .stmt{ grid-template-columns:1fr; }
  .stmt__side{ grid-column:auto; position:static; }
  .stmt__body{ grid-column:auto; }
}
.stmt__portrait{ width:100%; max-width:220px; filter:grayscale(1); transition:filter .7s var(--ease); }
.stmt__portrait:hover{ filter:grayscale(0); }
.sig{ font-size:.8125rem; font-weight:400; color:var(--dim); margin-top:.9rem; display:block; letter-spacing:-.01em; }

/* ---------- 9. FATOS ---------- */
.facts{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.facts > div{ padding:clamp(1.3rem,2.4vw,2rem) clamp(.9rem,1.6vw,1.5rem); border-left:1px solid var(--line); }
.facts > div:first-child{ border-left:0; }
.facts b{ display:block; font-weight:450; font-size:clamp(1.15rem,.95rem + .8vw,1.7rem); letter-spacing:-.032em; line-height:1.1; margin-bottom:.4rem; }
.facts span{ font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.11em; text-transform:uppercase; color:var(--dim-2); }
@media (max-width:820px){
  .facts{ grid-template-columns:repeat(2,1fr); }
  .facts > div:nth-child(odd){ border-left:0; }
  .facts > div:nth-child(n+3){ border-top:1px solid var(--line); }
}
.facts--sm b{ font-size:clamp(.95rem,.9rem + .4vw,1.15rem); line-height:1.28; margin-bottom:0; letter-spacing:-.022em; }
.facts--sm > div{ padding-block:clamp(.9rem,1.8vw,1.35rem); }

/* ---------- 10. GRADE DE CATEGORIAS ---------- */
.sheet{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gut); }
@media (max-width:1080px){ .sheet{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .sheet{ grid-template-columns:1fr; } }

.frame{ position:relative; display:block; }
.frame__img{ position:relative; overflow:hidden; aspect-ratio:4/5; background:var(--ink-2); }
.frame__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease), filter .7s var(--ease); }
.frame:hover .frame__img img{ transform:scale(1.045); }
.frame__cap{ padding-top:.85rem; display:flex; align-items:baseline; justify-content:space-between; gap:1rem; }
.frame__cap h3{ margin:0; font-weight:460; font-size:clamp(1rem,.95rem + .35vw,1.28rem); letter-spacing:-.03em; line-height:1.16; }
.frame__cap em{ font-family:var(--f-mono); font-style:normal; font-size:.5625rem; letter-spacing:.1em; color:var(--dim-2); }
.frame__go{ display:inline-flex; align-items:center; gap:.35rem; margin-top:.3rem; font-size:.8125rem; color:var(--dim); transition:color .35s, gap .35s var(--ease); }
.frame:hover .frame__go{ color:var(--text); gap:.6rem; }

/* ---------- 10b. PLANO DE COBERTURA ---------- */
.plan{
  display:grid; grid-auto-flow:column; grid-auto-columns:minmax(260px,24vw);
  gap:var(--gut); overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; padding-bottom:1.1rem;
  scrollbar-width:thin; scrollbar-color:var(--line-2) transparent;
  margin-inline:calc(-1 * var(--pad)); padding-inline:var(--pad);
  scroll-padding-inline:var(--pad);
}
.plan::-webkit-scrollbar{ height:2px; }
.plan::-webkit-scrollbar-thumb{ background:var(--line-2); }
.plan::-webkit-scrollbar-track{ background:var(--line); }
.plan > article{ scroll-snap-align:start; display:flex; flex-direction:column; }
.plan__img{ aspect-ratio:5/4; overflow:hidden; background:var(--ink-2); position:relative; }
.plan__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease); }
.plan > article:hover .plan__img img{ transform:scale(1.045); }
.plan__t{
  position:absolute; left:0; top:0; z-index:2; padding:.42rem .62rem;
  font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.1em;
  background:rgba(8,8,9,.6); color:var(--accent);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.plan h3{ margin:.85rem 0 .4rem; font-weight:460; font-size:clamp(1rem,.95rem + .35vw,1.22rem); letter-spacing:-.03em; line-height:1.16; }
.plan p{ margin:0; font-size:.84375rem; color:var(--dim); line-height:1.52; }
.plan__rail{ display:flex; align-items:center; gap:.85rem; margin-top:.3rem; font-family:var(--f-mono); font-size:.5rem; letter-spacing:.13em; text-transform:uppercase; color:var(--dim-2); }
.plan__rail i{ flex:1; height:1px; background:var(--line); font-style:normal; }

/* ---------- 10c. CHIPS ---------- */
.types,.area{ display:flex; flex-wrap:wrap; gap:.45rem; }
.types span,.area span{
  font-size:.8125rem; color:var(--dim); border:1px solid var(--line);
  border-radius:100px; padding:.45rem .95rem; letter-spacing:-.012em;
  transition:border-color .35s, color .35s;
}
.types span:hover,.area span:hover{ border-color:var(--line-2); color:var(--text); }

/* ---------- 10d. QUEBRA ---------- */
.break{ position:relative; min-height:min(80svh,680px); display:grid; place-items:center; overflow:hidden; }
.break__bg{ position:absolute; inset:0; }
.break__bg img{ width:100%; height:100%; object-fit:cover; object-position:50% 45%; }
.break__bg::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(68% 56% at 50% 50%, rgba(8,8,9,.72), rgba(8,8,9,.24) 74%),
    linear-gradient(to bottom, rgba(8,8,9,.5), rgba(8,8,9,.22) 45%, rgba(8,8,9,.62));
}
.break blockquote{ position:relative; margin:0; max-width:min(92vw,1000px); text-align:center; padding-inline:var(--pad); }
.break blockquote p{
  font-size:clamp(1.5rem,1rem + 3vw,3.2rem); line-height:1.06; letter-spacing:-.045em;
  font-weight:450; margin:0; text-wrap:balance;
}
.break cite{
  display:block; margin-top:1.4rem; font-style:normal;
  font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(251,251,250,.6);
}

/* ---------- 11. MOSAICO ---------- */
.mosaic{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gut); align-items:end; }
.mosaic figure{ margin:0; position:relative; }
.mosaic img{ width:100%; height:100%; object-fit:cover; }
.mosaic figcaption{ margin-top:.5rem; font-family:var(--f-mono); font-size:.5rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim-2); }
.m-a{ grid-column:1/6;  aspect-ratio:4/5; }
.m-b{ grid-column:7/13; aspect-ratio:3/2; margin-bottom:clamp(2rem,6vw,6rem); }
.m-c{ grid-column:2/6;  aspect-ratio:3/2; margin-top:clamp(1rem,4vw,4rem); }
.m-d{ grid-column:7/11; aspect-ratio:4/5; }
.m-e{ grid-column:1/8;  aspect-ratio:16/9; }
.m-f{ grid-column:9/13; aspect-ratio:2/3; margin-top:clamp(-6rem,-7vw,-2rem); }
.mosaic .ratio{ height:100%; overflow:hidden; background:var(--ink-2); }
.mosaic .ratio img{ transition:transform 1.3s var(--ease); }
.mosaic figure:hover .ratio img{ transform:scale(1.035); }
@media (max-width:860px){
  .mosaic{ grid-template-columns:repeat(6,1fr); }
  .m-a{ grid-column:1/5; } .m-b{ grid-column:1/7; margin-bottom:0; }
  .m-c{ grid-column:2/7; margin-top:0; } .m-d{ grid-column:1/5; }
  .m-e{ grid-column:1/7; } .m-f{ grid-column:3/7; margin-top:0; }
}

/* ---------- 12. MÉTODO ---------- */
.method{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gut); }
.method__head{ grid-column:1/6; position:sticky; top:7rem; align-self:start; }
.method__list{ grid-column:7/13; display:flex; flex-direction:column; }
@media (max-width:980px){
  .method{ grid-template-columns:1fr; }
  .method__head{ grid-column:auto; position:static; }
  .method__list{ grid-column:auto; }
}
.step{ padding-block:clamp(1.5rem,2.8vw,2.4rem); border-top:1px solid var(--line-ink); display:grid; grid-template-columns:auto 1fr; gap:1rem 1.4rem; }
.step:last-child{ border-bottom:1px solid var(--line-ink); }
.step__n{ font-family:var(--f-mono); font-size:.625rem; letter-spacing:.08em; color:var(--accent-ink); padding-top:.5rem; }
.step h3{ margin:0 0 .45rem; font-weight:470; font-size:clamp(1.2rem,1rem + .75vw,1.7rem); letter-spacing:-.034em; line-height:1.14; }
.step p{ margin:0; color:var(--dim-ink); max-width:54ch; font-size:.9375rem; }
.step__pic{ grid-column:1/-1; margin-top:.9rem; aspect-ratio:16/7; overflow:hidden; background:var(--paper-2); }
.step__pic img{ width:100%; height:100%; object-fit:cover; }

/* ---------- 13. LUZ ---------- */
.light{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gut); align-items:center; }
.light__copy{ grid-column:1/5; }
.light__demo{ grid-column:6/13; }
@media (max-width:980px){ .light{ grid-template-columns:1fr; } .light__copy,.light__demo{ grid-column:auto; } }
.lightbox{ position:relative; aspect-ratio:3/2; overflow:hidden; background:var(--ink-2); isolation:isolate; }
.lightbox img{
  width:100%; height:100%; object-fit:cover;
  filter:saturate(var(--sat,1)) brightness(var(--bri,1)) contrast(var(--con,1));
  transition:filter .12s linear;
}
.lightbox__wash{
  position:absolute; inset:0; pointer-events:none;
  background:var(--wash, rgb(224,164,94)); opacity:var(--w1,.3);
  mix-blend-mode:color; transition:background .12s linear, opacity .12s linear;
}
.lightbox__wash2{
  position:absolute; inset:0; pointer-events:none; opacity:var(--w2,0);
  background:var(--wash, rgb(224,164,94)); mix-blend-mode:soft-light;
  transition:background .12s linear, opacity .12s linear;
}
.lightbox__hud{
  position:absolute; left:0; right:0; bottom:0; padding:.8rem 1rem;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.11em; text-transform:uppercase;
  color:#FBFBFA; background:linear-gradient(to top,rgba(8,8,9,.7),transparent);
}
.lightbox__hud b{ font-size:.75rem; font-weight:500; letter-spacing:.02em; }
.scrub{ margin-top:1rem; display:flex; align-items:center; gap:.9rem; }
.scrub input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:20px; background:transparent; cursor:grab; }
.scrub input[type=range]:active{ cursor:grabbing; }
.scrub input[type=range]::-webkit-slider-runnable-track{ height:1px; background:linear-gradient(to right,#8FA6B4,#D8C08A,#D8A863,#B9752E); }
.scrub input[type=range]::-moz-range-track{ height:1px; background:linear-gradient(to right,#8FA6B4,#D8C08A,#D8A863,#B9752E); }
.scrub input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none; width:13px; height:13px; margin-top:-6px;
  border-radius:50%; background:var(--text); box-shadow:0 2px 12px rgba(0,0,0,.5);
}
.scrub input[type=range]::-moz-range-thumb{ width:13px; height:13px; border:0; border-radius:50%; background:var(--text); }
.scrub input[type=range]:focus-visible{ outline:2px solid var(--text); outline-offset:6px; border-radius:4px; }
.scrub__end{ font-family:var(--f-mono); font-size:.5rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim-2); white-space:nowrap; }

/* ---------- 14. DEPOIMENTOS ---------- */
.says{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.4rem,2.8vw,3rem); }
@media (max-width:940px){ .says{ grid-template-columns:1fr; max-width:60ch; } }
.say{ border-top:1px solid var(--line); padding-top:1.3rem; }
.says > .say:nth-child(2){ margin-top:clamp(0rem,3vw,3rem); }
.says > .say:nth-child(3){ margin-top:clamp(0rem,6vw,6rem); }
.say p{ font-size:clamp(1rem,.95rem + .3vw,1.15rem); line-height:1.5; letter-spacing:-.022em; font-weight:350; margin:0 0 1rem; text-wrap:pretty; }
.say cite{ font-style:normal; font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.13em; text-transform:uppercase; color:var(--dim-2); }
.stars{ display:flex; gap:.15rem; margin-bottom:.8rem; color:var(--accent); }
.stars svg{ width:10px; height:10px; }

/* ---------- 15. INVESTIMENTO ---------- */
.tiers{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gut); }
@media (max-width:940px){ .tiers{ grid-template-columns:1fr; } }
.tier{
  border:1px solid var(--line); padding:0 clamp(1.3rem,2.3vw,2rem) clamp(1.4rem,2.4vw,2rem);
  display:flex; flex-direction:column; gap:.9rem;
  transition:border-color .5s, background-color .5s;
}
.tier:hover{ border-color:var(--line-2); background:rgba(251,251,250,.02); }
.tier--star{ border-color:var(--line-2); }
.tier__pic{ margin:0 calc(-1 * clamp(1.3rem,2.3vw,2rem)) clamp(.6rem,1.2vw,1rem); aspect-ratio:16/9; overflow:hidden; background:var(--ink-2); }
.tier__pic img{ width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease); }
.tier:hover .tier__pic img{ transform:scale(1.045); }
.tier__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.tier h3{ margin:0; font-weight:470; font-size:clamp(1.15rem,1rem + .6vw,1.5rem); letter-spacing:-.034em; line-height:1.14; }
.tier__price{ text-align:right; flex:none; }
.tier__price b{ display:block; font-size:clamp(1.3rem,1.1rem + .9vw,1.9rem); font-weight:450; letter-spacing:-.04em; line-height:1; }
.tier__price span{ font-family:var(--f-mono); font-size:.5rem; letter-spacing:.11em; text-transform:uppercase; color:var(--dim-2); }
.tier p{ margin:0; font-size:.875rem; color:var(--dim); }
.tier ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:.45rem; font-size:.84375rem; }
.tier li{ display:flex; gap:.55rem; align-items:flex-start; color:var(--dim); }
.tier li::before{ content:""; width:3px; height:3px; border-radius:50%; background:var(--dim-2); flex:none; margin-top:.62em; }
.tier .btn{ margin-top:auto; align-self:flex-start; }
.incl{ margin-top:clamp(1.4rem,2.6vw,2.2rem); padding-top:1.2rem; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:.45rem; }
.chip{ font-family:var(--f-mono); font-size:.5rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim-2); border:1px solid var(--line); border-radius:100px; padding:.4rem .7rem; }

/* ---------- 16. FAQ ---------- */
.faq{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gut); }
.faq__head{ grid-column:1/5; }
.faq__list{ grid-column:6/13; }
@media (max-width:980px){ .faq{ grid-template-columns:1fr; } .faq__head,.faq__list{ grid-column:auto; } }
.qa{ border-top:1px solid var(--line); }
.qa:last-child{ border-bottom:1px solid var(--line); }
.qa__q{
  width:100%; text-align:left; display:flex; align-items:flex-start; justify-content:space-between; gap:1.4rem;
  padding:1.05rem 0; font-weight:450;
  font-size:clamp(.97rem,.92rem + .3vw,1.15rem); line-height:1.32; letter-spacing:-.026em;
  transition:color .35s;
}
.qa__q:hover{ color:var(--dim); }
.qa__ic{ flex:none; width:14px; height:14px; margin-top:.4em; position:relative; }
.qa__ic::before,.qa__ic::after{ content:""; position:absolute; left:0; top:50%; width:14px; height:1px; background:currentColor; transition:transform .45s var(--ease); }
.qa__ic::after{ transform:rotate(90deg); }
.qa[data-open="true"] .qa__ic::after{ transform:rotate(0deg); }
.qa__a{ overflow:hidden; height:0; transition:height .5s var(--ease); }
.qa__a > div{ padding-bottom:1.3rem; max-width:64ch; color:var(--dim-ink); font-size:.9375rem; }
.faq:not(.on-paper) .qa__a > div{ color:var(--dim); }
.qa__a ul{ margin:.6rem 0 0; padding-left:1rem; display:flex; flex-direction:column; gap:.25rem; }

/* ---------- 17. SOBRE ---------- */
.about{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gut); align-items:center; }
.about__pic{ grid-column:1/6; position:relative; }
.about__pic .ratio{ aspect-ratio:4/5; overflow:hidden; background:var(--ink-2); }
.about__pic img{ width:100%; height:100%; object-fit:cover; }
.about__body{ grid-column:7/13; }
@media (max-width:980px){ .about{ grid-template-columns:1fr; } .about__pic,.about__body{ grid-column:auto; } .about__pic{ max-width:400px; } }
.about__body p{ color:var(--dim); max-width:58ch; }
.about__badge{
  position:absolute; right:-.8rem; bottom:-.8rem; background:var(--text); color:var(--ink);
  font-family:var(--f-mono); font-size:.5rem; letter-spacing:.11em; text-transform:uppercase;
  padding:.65rem .85rem; line-height:1.6; max-width:10rem;
}

/* ---------- 18. CTA FINAL ---------- */
.close{ position:relative; overflow:hidden; }
.close__bg{ position:absolute; inset:0; }
.close__bg img{ width:100%; height:100%; object-fit:cover; object-position:50% 42%; }
.close__bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(to right, rgba(8,8,9,.95) 0%, rgba(8,8,9,.85) 42%, rgba(8,8,9,.6) 100%),
    linear-gradient(to bottom, rgba(8,8,9,.45), rgba(8,8,9,.2) 40%, rgba(8,8,9,.68));
}
.close__inner{ position:relative; display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gut); align-items:start; }
.close__l{ grid-column:1/6; }
.close__r{ grid-column:7/13; }
@media (max-width:980px){ .close__inner{ grid-template-columns:1fr; } .close__l,.close__r{ grid-column:auto; } }

.form{
  display:grid; grid-template-columns:1fr 1fr; gap:.9rem;
  background:rgba(10,10,11,.55); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid var(--line); padding:clamp(1.1rem,2.2vw,1.8rem);
}
.field{ display:flex; flex-direction:column; gap:.35rem; }
.field--full{ grid-column:1/-1; }
.field label{ font-family:var(--f-mono); font-size:.5rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim-2); }
.field input,.field select,.field textarea{
  font:inherit; font-size:.9375rem; color:var(--text); background:rgba(251,251,250,.04);
  border:1px solid var(--line); border-radius:0; padding:.68rem .8rem; width:100%;
  transition:border-color .35s, background-color .35s;
}
.field textarea{ resize:vertical; min-height:92px; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--text); background:rgba(251,251,250,.07); }
.field select{ appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%2396979B' stroke-width='1.2'><path d='M1 1l4 4 4-4'/></svg>"); background-repeat:no-repeat; background-position:right .8rem center; padding-right:1.9rem; }
.field select option{ background:#131415; color:#FBFBFA; }
.form__note{ grid-column:1/-1; font-size:.75rem; color:var(--dim-2); margin:0; }
@media (max-width:620px){ .form{ grid-template-columns:1fr; } }

.direct{ display:flex; flex-direction:column; gap:.8rem; margin-top:1.8rem; padding-top:1.4rem; border-top:1px solid var(--line); }
.direct a{ display:flex; align-items:center; gap:.7rem; font-size:.9375rem; color:var(--dim); transition:color .35s; }
.direct a:hover{ color:var(--text); }
.direct svg{ width:14px; height:14px; flex:none; opacity:.6; }

/* ---------- 19. RODAPÉ ---------- */
.foot{ border-top:1px solid var(--line); padding-block:clamp(2.4rem,4.5vw,3.6rem) 1.8rem; }
.foot__grid{ display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:2rem var(--gut); }
@media (max-width:900px){ .foot__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .foot__grid{ grid-template-columns:1fr; } }
.foot h4{ margin:0 0 .9rem; font-family:var(--f-mono); font-size:.5rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim-2); font-weight:400; }
.foot ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:.45rem; }
.foot a{ font-size:.84375rem; color:var(--dim); transition:color .3s; }
.foot a:hover{ color:var(--text); }
.foot__bar{ margin-top:clamp(1.8rem,3.5vw,2.8rem); padding-top:1.2rem; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:.7rem 1.4rem; justify-content:space-between; align-items:center; }
.foot__bar small{ font-family:var(--f-mono); font-size:.5rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim-2); }

/* ---------- 20. GALERIA ---------- */
.gal{ column-count:3; column-gap:var(--gut); }
@media (max-width:980px){ .gal{ column-count:2; } }
@media (max-width:600px){ .gal{ column-count:1; } }
.gal figure{ margin:0 0 var(--gut); break-inside:avoid; position:relative; overflow:hidden; background:var(--ink-2); cursor:zoom-in; }
.gal img{ width:100%; transition:transform 1.2s var(--ease); }
.gal figure:hover img{ transform:scale(1.03); }

.lb{ position:fixed; inset:0; z-index:200; background:rgba(6,6,7,.97); display:none; place-items:center; padding:clamp(1rem,3vw,3rem); }
.lb[data-on="true"]{ display:grid; }
.lb img{ max-width:100%; max-height:88svh; object-fit:contain; }
.lb__x{ position:absolute; top:1rem; right:1.1rem; width:36px; height:36px; border:1px solid var(--line-2); border-radius:50%; display:grid; place-items:center; color:var(--text); }
.lb__nav{ position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border:1px solid var(--line-2); border-radius:50%; display:grid; place-items:center; color:var(--text); }
.lb__nav--p{ left:clamp(.5rem,2vw,2rem); } .lb__nav--n{ right:clamp(.5rem,2vw,2rem); }
.lb__c{ position:absolute; bottom:1.1rem; left:50%; transform:translateX(-50%); font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.11em; color:var(--dim-2); }

.phead{ padding-top:clamp(6.5rem,13vh,10rem); }
.phead__pic{ aspect-ratio:21/9; overflow:hidden; background:var(--ink-2); margin-top:clamp(1.8rem,3.5vw,3rem); }
.phead__pic img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:700px){ .phead__pic{ aspect-ratio:4/3; } }
.crumb{ display:flex; align-items:center; gap:.5rem; font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim-2); margin:0; }
.crumb a:hover{ color:var(--text); }
.pnav{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gut); }
@media (max-width:820px){ .pnav{ grid-template-columns:1fr; } }

/* utilidades */
.mt-s{ margin-top:clamp(.8rem,1.6vw,1.2rem); }
.mt-m{ margin-top:clamp(1.4rem,2.8vw,2.2rem); }
.mt-l{ margin-top:clamp(2.2rem,4.5vw,4rem); }
.mb-m{ margin-bottom:clamp(1.4rem,2.8vw,2.2rem); }
.mb-l{ margin-bottom:clamp(2.2rem,4.5vw,4rem); }
.row{ display:flex; flex-wrap:wrap; gap:.6rem; }
.between{ display:flex; flex-wrap:wrap; gap:1.4rem 2rem; align-items:flex-end; justify-content:space-between; }
.maxw{ max-width:60ch; }
[hidden]{ display:none !important; }
.sr{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
:focus-visible{ outline:2px solid var(--text); outline-offset:3px; }

/* ==========================================================================
   22. TEMA CLARO
   Trocado por tokens, sem folha separada. O truque: os tokens "-ink" deixam de
   significar "escuro sobre papel" e passam a significar "o painel de contraste".
   Assim .on-paper (Método, FAQ) inverte sozinha e o ritmo da página se mantém.
   ========================================================================== */
[data-theme="light"]{
  --amb:        #F5F5F3;
  --amb-tint:   150,146,138;

  --ink:        #FFFFFF;
  --ink-2:      #EAEAE7;        /* placeholder de imagem */
  --ink-3:      #DEDEDA;

  --text:       #0E0F10;
  --dim:        #63656A;
  --dim-2:      #8D8F94;

  /* o painel de contraste vira escuro */
  --paper:      #101112;
  --paper-2:    #1B1C1E;
  --text-ink:   #FBFBFA;
  --dim-ink:    #97999D;
  --line-ink:   rgba(251,251,250,.13);
  --accent-ink: #D9A464;

  --line:       rgba(14,15,16,.13);
  --line-2:     rgba(14,15,16,.24);
  --accent:     #9A6A28;
}
[data-theme="light"] ::selection{ background:var(--text); color:#fff; }

/* nav: no claro o hero é encaixado, então a nav está sempre sobre fundo claro */
[data-theme="light"] .nav__links a,
[data-theme="light"] .lang button{ color:var(--dim); }
[data-theme="light"] .nav__links a:hover,
[data-theme="light"] .lang button[aria-pressed="true"]{ color:var(--text); }
[data-theme="light"] .brand__txt span{ color:var(--dim-2); }
[data-theme="light"] .btn:hover{ background:var(--text); color:#fff; border-color:var(--text); }
[data-theme="light"] .btn--solid{ background:var(--text); color:#fff; border-color:var(--text); }
[data-theme="light"] .btn--solid:hover{ background:transparent; color:var(--text); border-color:var(--line-2); }
[data-theme="light"] .menu{ background:var(--amb); }
[data-theme="light"] .mbar{ background:color-mix(in srgb, var(--amb) 88%, transparent); }

/* HERO CLARO: deixa de ser sangria e vira faixa encaixada, com o título em tinta
   sobre o fundo claro. É a diferença real entre as duas versões. */
[data-theme="light"] .hero{
  min-height:0; display:flex; flex-direction:column;
  padding:clamp(7rem,15vh,11rem) var(--pad) 0; overflow:visible;
}
[data-theme="light"] .hero__inner{ order:1; padding:0; }
[data-theme="light"] .hero__media{
  order:2; position:relative; inset:auto; margin-top:clamp(1.8rem,4vw,3.2rem);
  aspect-ratio:16/7; width:100%; max-width:var(--max); margin-inline:auto;
}
@media (max-width:820px){ [data-theme="light"] .hero__media{ aspect-ratio:4/5; } }
html.js[data-theme="light"] .hero__media{ clip-path:inset(0 0 100% 0); }
html.js.ready[data-theme="light"] .hero__media{ transition:clip-path 1.3s var(--ease-io); clip-path:inset(0 0 0 0); }
[data-theme="light"] .hero__scrim,
[data-theme="light"] .hero__meta,
[data-theme="light"] .scroll-cue{ display:none; }
[data-theme="light"] .hero__eyebrow{ color:var(--dim); text-shadow:none; }
[data-theme="light"] .hero__foot p{ color:var(--dim); text-shadow:none; }
[data-theme="light"] .hero h1{ color:var(--text); }

/* seções full-bleed sobre foto escura continuam claras por dentro nos dois temas */
[data-theme="light"] .break,
[data-theme="light"] .close{ color:#FBFBFA; }
[data-theme="light"] .break cite,
[data-theme="light"] .close .muted,
[data-theme="light"] .close .tag,
[data-theme="light"] .close .direct a,
[data-theme="light"] .close .field label,
[data-theme="light"] .close .form__note{ color:rgba(251,251,250,.72); }
[data-theme="light"] .close .direct a:hover{ color:#FBFBFA; }
[data-theme="light"] .close .direct,
[data-theme="light"] .close .form{ border-color:rgba(251,251,250,.14); }
[data-theme="light"] .close .field input,
[data-theme="light"] .close .field select,
[data-theme="light"] .close .field textarea{
  color:#FBFBFA; background:rgba(251,251,250,.06); border-color:rgba(251,251,250,.16);
}
[data-theme="light"] .close .btn{ color:#FBFBFA; border-color:rgba(251,251,250,.28); }
[data-theme="light"] .close .btn:hover{ background:#FBFBFA; color:#0E0F10; border-color:#FBFBFA; }
[data-theme="light"] .close .btn--solid{ background:#FBFBFA; color:#0E0F10; border-color:#FBFBFA; }
[data-theme="light"] .close .btn--solid:hover{ background:transparent; color:#FBFBFA; }
[data-theme="light"] .close .form{ background:rgba(10,10,11,.55); }

/* medidor e atmosfera pedem menos peso no claro */
[data-theme="light"] .atmos__light{ opacity:.5; }
[data-theme="light"] .meter{ mix-blend-mode:normal; color:var(--dim-2); }
[data-theme="light"] .meter__dot{ background:var(--text); }
[data-theme="light"] .meter__k b{ color:var(--text); }
[data-theme="light"] .lb{ background:rgba(245,245,243,.97); }
[data-theme="light"] .plan__t{ background:rgba(8,8,9,.62); color:#F0D3A8; }

/* ==========================================================================
   23. TELA DE ENTRADA — os dois lados SÃO as duas versões
   ========================================================================== */
.gate{
  position:fixed; inset:0; z-index:300; display:none;
  grid-template-columns:1fr 1fr; background:var(--ink);
}
html.gate-on .gate{ display:grid; }
html.gate-on{ overflow:hidden; }
html.gate-on body{ overflow:hidden; }

.gate__side{
  position:relative; overflow:hidden; display:flex; flex-direction:column;
  justify-content:flex-end; padding:clamp(1.4rem,3.4vw,3.2rem);
  border:0; text-align:left; cursor:pointer;
  transition:flex .7s var(--ease);
}
.gate__side::before{
  content:""; position:absolute; inset:0; z-index:0;
  transition:transform 1.2s var(--ease), opacity .6s;
}
.gate__side img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
  transition:transform 1.4s var(--ease), filter .7s var(--ease);
}
.gate__side:hover img{ transform:scale(1.04); }
.gate__scrim{ position:absolute; inset:0; z-index:1; transition:opacity .6s; }

.gate__dark{ background:#0A0A0B; }
.gate__dark .gate__scrim{ background:linear-gradient(to top, rgba(8,8,9,.96) 0%, rgba(8,8,9,.78) 34%, rgba(8,8,9,.5) 68%, rgba(8,8,9,.42) 100%); }
.gate__dark .gate__body{ color:#FBFBFA; }
.gate__light{ background:#F5F5F3; }
.gate__dark img{ filter:brightness(.82) saturate(.94); }
.gate__light img{ filter:brightness(1.08) saturate(.96); }
.gate__light .gate__scrim{ background:linear-gradient(to top, rgba(248,248,246,.97) 0%, rgba(248,248,246,.8) 34%, rgba(248,248,246,.42) 70%, rgba(248,248,246,.3) 100%); }
.gate__light .gate__body{ color:#0E0F10; }

.gate__body{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:flex-start; }
.gate__k,.gate__t,.gate__d{ display:block; }
.gate__k{
  font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.16em;
  text-transform:uppercase; opacity:.62; margin:0 0 .7rem;
}
.gate__t{
  font-size:clamp(1.7rem,1rem + 2.6vw,3rem); font-weight:450;
  letter-spacing:-.042em; line-height:1; margin:0 0 .5rem;
}
.gate__d{ margin:0; font-size:.875rem; opacity:.72; max-width:30ch; letter-spacing:-.012em; }
.gate__go{
  display:inline-flex; align-items:center; gap:.5rem; margin-top:1.2rem;
  font-size:.8125rem; font-weight:480; letter-spacing:-.012em;
  border:1px solid currentColor; border-radius:100px; padding:.62rem 1.1rem;
  transition:background-color .4s var(--ease), color .4s, gap .35s var(--ease);
}
.gate__dark .gate__go:hover{ background:#FBFBFA; color:#0A0A0B; gap:.8rem; }
.gate__light .gate__go:hover{ background:#0E0F10; color:#F5F5F3; gap:.8rem; }

.gate__head{
  position:absolute; z-index:3; top:clamp(1.2rem,3vw,2.4rem); left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.35rem;
  pointer-events:none; color:#FBFBFA; text-align:center;
  background:rgba(8,8,9,.42); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  padding:.7rem 1.4rem; border-radius:100px; white-space:nowrap;
}
.gate__head b{ font-size:.8125rem; font-weight:480; letter-spacing:-.018em; }
.gate__head span{ font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.16em; text-transform:uppercase; opacity:.7; }

@media (min-width:861px){
  .gate__side:hover{ flex:1.06; }
  .gate{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .gate{ grid-template-columns:1fr; grid-template-rows:1fr 1fr; }
  .gate__side{ justify-content:flex-end; padding:1.2rem; }
  .gate__t{ font-size:clamp(1.5rem,6.5vw,2rem); }
  .gate__d{ display:none; }
  .gate__go{ margin-top:.8rem; padding:.5rem .9rem; font-size:.78125rem; }
  .gate__head{ display:none; }
}

/* botão de troca de tema na nav */
.theme-t{
  display:grid; place-items:center; width:30px; height:30px; flex:none;
  border:1px solid var(--line-2); border-radius:50%; color:inherit;
  transition:border-color .35s, background-color .35s, color .35s;
}
.theme-t:hover{ border-color:var(--text); }
.theme-t svg{ width:13px; height:13px; }
.theme-t .i-sun{ display:none; }
[data-theme="light"] .theme-t .i-sun{ display:block; }
[data-theme="light"] .theme-t .i-moon{ display:none; }
@media (max-width:400px){ .theme-t{ display:none; } }

/* ==========================================================================
   24. LANDING PAGES DE SESSÃO SAZONAL
   Página de conversão, não portfólio: nav sem saída, oferta explícita,
   vagas com data e um CTA sempre na tela. Herda tema claro/escuro do site.
   ========================================================================== */
[data-season]{ --season:var(--accent); }
[data-season="fall"]     { --season:#C2703A; }
[data-season="christmas"]{ --season:#9E4A44; }
[data-season="mothers"]  { --season:#A9707E; }
[data-theme="light"][data-season="fall"]     { --season:#8A4A20; }
[data-theme="light"][data-season="christmas"]{ --season:#7A322D; }
[data-theme="light"][data-season="mothers"]  { --season:#7E4A57; }

/* nav enxuta: só marca e CTA, sem links que vazam o tráfego */
.lp-nav{
  position:fixed; inset-inline:0; top:0; z-index:80;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:clamp(.8rem,1.4vw,1.2rem) var(--pad);
  background:color-mix(in srgb, var(--amb) 82%, transparent);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
}
.lp-nav__r{ display:flex; align-items:center; gap:.6rem; }
@media (max-width:560px){ .lp-nav .btn--solid{ display:none; } }

/* hero da LP */
.lp-hero{ position:relative; padding-top:clamp(6rem,13vh,9rem); }
.lp-hero__grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gut); align-items:center; }
.lp-hero__copy{ grid-column:1/7; }
.lp-hero__pic{ grid-column:8/13; }
@media (max-width:980px){
  .lp-hero__grid{ grid-template-columns:1fr; }
  .lp-hero__copy,.lp-hero__pic{ grid-column:auto; }
  .lp-hero__pic{ order:-1; }
}
.lp-hero__pic .ratio{ aspect-ratio:4/5; overflow:hidden; background:var(--ink-2); }
.lp-hero__pic img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:980px){ .lp-hero__pic .ratio{ aspect-ratio:16/10; } }
.lp-hero .tag{ color:var(--season); }
.lp-hero .tag::before{ background:var(--season); opacity:1; }

.badge{
  display:inline-flex; align-items:center; gap:.5rem; margin-bottom:1rem;
  font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.14em; text-transform:uppercase;
  border:1px solid var(--season); color:var(--season); border-radius:100px; padding:.42rem .8rem;
}
.badge i{ width:5px; height:5px; border-radius:50%; background:var(--season); font-style:normal; flex:none; }

/* cartão da oferta */
.offer{
  display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(1.4rem,3vw,2.6rem);
  border:1px solid var(--line); padding:clamp(1.4rem,3vw,2.4rem); align-items:start;
}
@media (max-width:860px){ .offer{ grid-template-columns:1fr; } }
.offer__price{ display:flex; align-items:baseline; gap:.6rem; margin:0 0 1rem; }
.offer__price b{ font-size:clamp(2.2rem,1.4rem + 2.6vw,3.6rem); font-weight:450; letter-spacing:-.045em; line-height:1; }
.offer__price span{ font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.13em; text-transform:uppercase; color:var(--dim-2); }
.offer ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:.55rem; font-size:.9375rem; }
.offer li{ display:flex; gap:.6rem; align-items:flex-start; color:var(--dim); }
.offer li b{ color:var(--text); font-weight:450; }
.offer li::before{
  content:""; width:14px; height:8px; flex:none; margin-top:.42em;
  border-left:1.5px solid var(--season); border-bottom:1.5px solid var(--season);
  transform:rotate(-45deg) translate(1px,-2px);
}

/* vagas com data */
.dates{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.6rem; }
.date{
  border:1px solid var(--line); padding:.85rem .9rem; display:flex; flex-direction:column; gap:.2rem;
  transition:border-color .35s, background-color .35s;
}
.date:not([data-full]):hover{ border-color:var(--season); }
.date b{ font-size:.9375rem; font-weight:460; letter-spacing:-.022em; }
.date span{ font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim-2); }
.date em{ font-style:normal; font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.11em; text-transform:uppercase; color:var(--season); }
.date[data-full] { opacity:.4; }
.date[data-full] b{ text-decoration:line-through; }
.date[data-full] em{ color:var(--dim-2); }

/* faixa de urgência */
.deadline{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem;
  border-top:1px solid var(--season); border-bottom:1px solid var(--line);
  padding:clamp(1rem,2.2vw,1.6rem) 0;
}
.deadline b{ font-size:clamp(1.05rem,.95rem + .5vw,1.4rem); font-weight:450; letter-spacing:-.03em; }
.deadline span{ font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.13em; text-transform:uppercase; color:var(--dim-2); }

/* como funciona */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gut); }
@media (max-width:880px){ .steps{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .steps{ grid-template-columns:1fr; } }
.stepc{ border-top:1px solid var(--line); padding-top:1rem; }
.stepc em{ font-style:normal; font-family:var(--f-mono); font-size:.625rem; letter-spacing:.1em; color:var(--season); }
.stepc h3{ margin:.55rem 0 .35rem; font-size:1.0625rem; font-weight:460; letter-spacing:-.028em; line-height:1.2; }
.stepc p{ margin:0; font-size:.875rem; color:var(--dim); }

/* tira de fotos */
.strip{
  display:grid; grid-auto-flow:column; grid-auto-columns:minmax(210px,20vw); gap:var(--gut);
  overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:1rem;
  margin-inline:calc(-1 * var(--pad)); padding-inline:var(--pad); scroll-padding-inline:var(--pad);
  scrollbar-width:thin; scrollbar-color:var(--line-2) transparent;
}
.strip::-webkit-scrollbar{ height:2px; }
.strip::-webkit-scrollbar-thumb{ background:var(--line-2); }
.strip figure{ margin:0; scroll-snap-align:start; aspect-ratio:4/5; overflow:hidden; background:var(--ink-2); }
.strip img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.strip figure:hover img{ transform:scale(1.04); }

/* CTA fixo — na LP fica em todas as larguras */
.sticky{
  position:fixed; inset-inline:0; bottom:0; z-index:70;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.7rem var(--pad) calc(.7rem + env(safe-area-inset-bottom));
  background:color-mix(in srgb, var(--amb) 90%, transparent);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-top:1px solid var(--line);
  transform:translateY(110%); transition:transform .5s var(--ease);
}
.sticky.is-on{ transform:none; }
.sticky__l b{ display:block; font-size:.875rem; font-weight:460; letter-spacing:-.024em; }
.sticky__l span{ font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim-2); }
@media (max-width:560px){ .sticky__l{ display:none; } .sticky .btn{ flex:1; } }

.lp-foot{ border-top:1px solid var(--line); padding-block:2.2rem 6rem; }
.lp-foot__in{ display:flex; flex-wrap:wrap; gap:1rem 2rem; align-items:center; justify-content:space-between; }
.lp-foot small{ font-family:var(--f-mono); font-size:.5rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim-2); }

/* ==========================================================================
   25. BLOG
   ========================================================================== */
.plist{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.4rem,2.6vw,2.4rem); }
@media (max-width:980px){ .plist{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .plist{ grid-template-columns:1fr; } }
.pcard{ display:block; }
.pcard__img{ aspect-ratio:3/2; overflow:hidden; background:var(--ink-2); margin-bottom:.9rem; }
.pcard__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.pcard:hover .pcard__img img{ transform:scale(1.04); }
.pcard em{ font-style:normal; font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.13em; text-transform:uppercase; color:var(--accent); }
.pcard h2{ margin:.5rem 0 .45rem; font-size:clamp(1.05rem,.98rem + .42vw,1.35rem); font-weight:460; letter-spacing:-.032em; line-height:1.18; }
.pcard:hover h2{ color:var(--dim); }
.pcard p{ margin:0 0 .6rem; font-size:.875rem; color:var(--dim); }
.pcard time{ font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.11em; text-transform:uppercase; color:var(--dim-2); }

.types a{ display:contents; }
.types span[data-on]{ border-color:var(--text); color:var(--text); }
.types span i{ font-style:normal; font-family:var(--f-mono); font-size:.5625rem; opacity:.6; margin-left:.3rem; }

/* post */
.post{ max-width:none; }
.post h1{ max-width:22ch; }
.post__meta{ margin:1rem 0 0; font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim-2); }
.post__cover{ margin:clamp(1.6rem,3.4vw,2.8rem) 0 0; aspect-ratio:16/9; overflow:hidden; background:var(--ink-2); }
.post__cover img{ width:100%; height:100%; object-fit:cover; }
.post__lede{ max-width:62ch; margin:clamp(1.6rem,3vw,2.4rem) 0 0; }

.prose{ max-width:68ch; margin-top:clamp(1.6rem,3vw,2.4rem); font-size:clamp(1rem,.96rem + .2vw,1.0625rem); }
.prose > *:first-child{ margin-top:0; }
.prose h2{ font-size:clamp(1.4rem,1.15rem + 1.1vw,2rem); font-weight:460; letter-spacing:-.036em; line-height:1.14; margin:2.2em 0 .6em; }
.prose h3{ font-size:clamp(1.12rem,1rem + .55vw,1.4rem); font-weight:460; letter-spacing:-.03em; line-height:1.2; margin:1.9em 0 .5em; }
.prose h4{ font-size:1.0625rem; font-weight:480; letter-spacing:-.024em; margin:1.6em 0 .4em; }
.prose p{ margin:0 0 1.15em; color:var(--dim); line-height:1.72; }
.prose a{ color:var(--text); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; text-decoration-color:var(--line-2); transition:text-decoration-color .3s; }
.prose a:hover{ text-decoration-color:var(--text); }
.prose strong{ color:var(--text); font-weight:520; }
.prose ul,.prose ol{ margin:0 0 1.15em; padding-left:1.15rem; color:var(--dim); }
.prose li{ margin-bottom:.4em; line-height:1.7; }
.prose li::marker{ color:var(--dim-2); }
.prose blockquote{ margin:1.8em 0; padding-left:1.2rem; border-left:1px solid var(--accent); }
.prose blockquote p{ font-size:1.15em; line-height:1.5; letter-spacing:-.022em; color:var(--text); margin:0; }
.prose figure{ margin:2em 0; }
.prose figure img{ width:100%; }
.prose figcaption{ margin-top:.6rem; font-family:var(--f-mono); font-size:.5625rem; letter-spacing:.11em; text-transform:uppercase; color:var(--dim-2); }
.prose img{ border-radius:0; }
.prose hr{ border:0; border-top:1px solid var(--line); margin:2.6em 0; }
.prose code{ font-family:var(--f-mono); font-size:.88em; background:var(--ink-2); padding:.12em .38em; }
