:root{
  --bg:#0B0D10;
  --bg-elev:#14171C;
  --bg-elev2:#1B1F26;
  --text:#E7E4DC;
  --text-muted:#9A9C9F;
  --text-faint:#5F6266;
  --ember:#C1512E;
  --ember-bright:#E2723F;
  --sage:#8AA396;
  --sage-dim:#4F6459;
  --border:#262A31;
  --gold:#9C7A3C;
  --maxw:1080px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{ background:var(--ember); color:#0B0D10; }
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
h1,h2,h3{ font-family:'Fraunces', serif; font-weight:600; letter-spacing:-0.01em; }
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ember-bright);
  display:flex; align-items:center; gap:10px;
  margin-bottom:18px;
}
.eyebrow::before{ content:""; width:22px; height:1px; background:var(--ember-bright); display:inline-block; }
section{ padding:96px 0; position:relative; }
@media(max-width:640px){ section{ padding:64px 0; } }
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }

/* ---------- HERO ---------- */
.hero{
  min-height:92vh;
  display:flex; flex-direction:column; justify-content:center;
  padding:140px 0 90px;
  position:relative;
  border-bottom:1px solid var(--border);
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 800px 500px at 15% 0%, rgba(193,81,46,0.14), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 30%, rgba(138,163,150,0.08), transparent 60%);
  pointer-events:none;
}
.hero-inner{ position:relative; z-index:1; }
.hero h1{
  font-size:clamp(34px, 5.6vw, 62px);
  line-height:1.08;
  max-width:920px;
  color:#fff;
}
.hero h1 em{
  font-style:normal;
  color:var(--ember-bright);
}
.hero .lede{
  font-size:clamp(16px, 2vw, 19px);
  color:var(--text-muted);
  max-width:600px;
  margin-top:26px;
  line-height:1.65;
}
.cta-block{ margin-top:44px; display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.btn{
  font-family:'IBM Plex Mono', monospace;
  font-size:14.5px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  background:var(--ember);
  color:#fff;
  border:none;
  padding:19px 34px;
  border-radius:3px;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:10px;
  transition:background .25s ease, transform .25s ease, box-shadow .25s ease;
  box-shadow:0 0 0 0 rgba(193,81,46,0.5);
}
.btn:hover{ background:var(--ember-bright); transform:translateY(-2px); box-shadow:0 10px 30px -8px rgba(193,81,46,0.55); }
.btn:focus-visible{ outline:2px solid var(--sage); outline-offset:3px; }
.btn-arrow{ transition:transform .25s ease; }
.btn:hover .btn-arrow{ transform:translateX(3px); }
.trust-line{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  color:var(--text-faint);
  letter-spacing:0.02em;
}
.trust-line b{ color:var(--sage); font-weight:500; }

/* ---------- PROBLEM ---------- */
.problem h2{ font-size:clamp(26px,4vw,38px); color:#fff; max-width:680px; }
.problem-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:40px; align-items:start;
}
@media(max-width:760px){ .problem-grid{ grid-template-columns:1fr; gap:28px; } }
.problem-list{ list-style:none; display:flex; flex-direction:column; gap:18px; }
.problem-list li{
  padding-left:26px; position:relative; color:var(--text-muted); font-size:16px;
}
.problem-list li::before{
  content:"—"; position:absolute; left:0; color:var(--text-faint);
}
.problem-note{
  font-size:18px; color:var(--text); border-left:2px solid var(--ember); padding-left:22px; line-height:1.6;
}
.problem-note b{ color:#fff; }

/* ---------- MECHANISM ---------- */
.mechanism{ background:var(--bg-elev); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.mechanism h2{ font-size:clamp(26px,4.2vw,40px); color:#fff; max-width:760px; }
.mechanism .lede{ color:var(--text-muted); max-width:680px; margin-top:20px; font-size:17px; line-height:1.7; }
.stat-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:56px; background:var(--border); border:1px solid var(--border); }
@media(max-width:760px){ .stat-row{ grid-template-columns:1fr; } }
.stat-card{ background:var(--bg-elev); padding:34px 30px; }
.stat-card .mark{ font-family:'IBM Plex Mono',monospace; color:var(--sage); font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:14px; display:block;}
.stat-card p{ font-size:16.5px; color:var(--text); line-height:1.55; }

/* ---------- WHAT IT IS ---------- */
.whatis h2{ font-size:clamp(26px,4.2vw,40px); color:#fff; max-width:640px; }
.whatis .lede{ color:var(--text-muted); max-width:680px; margin-top:20px; font-size:17px; line-height:1.75; }
.feature-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:52px; }
@media(max-width:760px){ .feature-row{ grid-template-columns:1fr; } }
.feature{ border-top:1px solid var(--gold); padding-top:20px; }
.feature .num{ font-family:'IBM Plex Mono',monospace; color:var(--gold); font-size:13px; }
.feature h3{ font-family:'Fraunces',serif; font-size:20px; font-weight:600; color:#fff; margin:10px 0 8px; }
.feature p{ color:var(--text-muted); font-size:15px; }

/* ---------- JOURNEY / TIMELINE (signature element) ---------- */
.journey{ background:var(--bg-elev); border-top:1px solid var(--border); border-bottom:1px solid var(--border); overflow:hidden; }
.journey h2{ font-size:clamp(26px,4.2vw,40px); color:#fff; max-width:640px; }
.journey .lede{ color:var(--text-muted); max-width:640px; margin-top:18px; font-size:16.5px; }
.timeline{ margin-top:76px; position:relative; padding-bottom:20px; }
.timeline-track{
  position:relative; height:2px; background:var(--border); margin:0 10px;
}
.timeline-fill{
  position:absolute; left:0; top:0; height:2px; width:0%; background:linear-gradient(90deg, var(--ember), var(--sage));
  transition:width 1.8s cubic-bezier(.2,.8,.2,1);
}
.timeline-points{ display:flex; justify-content:space-between; margin-top:-1px; }
.tpoint{ position:relative; text-align:center; flex:1; }
.tpoint .dot{
  width:10px; height:10px; border-radius:50%; background:var(--text-faint); margin:0 auto;
  transform:translateY(-4px); border:2px solid var(--bg-elev);
}
.tpoint.major .dot{ width:16px; height:16px; background:var(--ember); box-shadow:0 0 0 4px rgba(193,81,46,0.18); }
.tpoint .tlabel{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--text-faint); margin-top:14px; letter-spacing:.03em; }
.tpoint.major .tlabel{ color:var(--text); }
.tpoint .thab{ font-size:13.5px; color:var(--sage); margin-top:6px; max-width:120px; margin-left:auto; margin-right:auto; line-height:1.3; }
@media(max-width:700px){
  .timeline{ padding-left:6px; }
  .timeline-track{ width:2px; height:auto; margin:0; position:absolute; left:16px; top:0; bottom:0; }
  .timeline-fill{ width:2px !important; height:0%; top:0; left:0; background:linear-gradient(180deg, var(--ember), var(--sage)); transition:height 1.8s cubic-bezier(.2,.8,.2,1); }
  .timeline-points{ flex-direction:column; gap:34px; padding-left:44px; }
  .tpoint{ text-align:left; }
  .tpoint .dot{ position:absolute; left:12px; transform:translate(-50%,0); margin:0; }
  .tpoint .tlabel, .tpoint .thab{ margin-left:0; margin-right:0; max-width:none; }
}
.phase-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:64px; }
@media(max-width:760px){ .phase-row{ grid-template-columns:1fr; } }
.phase{ background:var(--bg-elev2); padding:26px 24px; border-radius:4px; }
.phase .prange{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--sage); letter-spacing:.05em; }
.phase h3{ font-family:'Fraunces',serif; font-size:19px; color:#fff; margin:10px 0 8px; font-weight:600; }
.phase p{ font-size:14.5px; color:var(--text-muted); }

/* ---------- FOR WHO ---------- */
.forwho-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:44px; }
@media(max-width:760px){ .forwho-grid{ grid-template-columns:1fr; } }
.forwho-card h3{ font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:22px; }
.forwho-card.yes h3{ color:var(--sage); }
.forwho-card.no h3{ color:var(--text-faint); }
.forwho-list{ list-style:none; display:flex; flex-direction:column; gap:16px; }
.forwho-list li{ padding-left:30px; position:relative; font-size:15.5px; color:var(--text); }
.forwho-list.yes li::before{ content:"✓"; position:absolute; left:0; color:var(--sage); font-weight:600; }
.forwho-list.no li::before{ content:"✕"; position:absolute; left:0; color:var(--text-faint); }
.forwho-list.no li{ color:var(--text-muted); }

/* ---------- GUARANTEE ---------- */
.guarantee{ background:var(--bg-elev); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.guarantee-inner{ display:flex; gap:40px; align-items:center; }
@media(max-width:700px){ .guarantee-inner{ flex-direction:column; align-items:flex-start; gap:24px; } }
.g-badge{
  flex:0 0 auto; width:118px; height:118px; border-radius:50%;
  border:1.5px solid var(--sage); display:flex; align-items:center; justify-content:center;
  flex-direction:column; font-family:'IBM Plex Mono',monospace; color:var(--sage);
}
.g-badge .n{ font-size:34px; font-weight:500; line-height:1; }
.g-badge .u{ font-size:10px; letter-spacing:.08em; margin-top:4px; }
.guarantee h2{ font-size:clamp(24px,3.6vw,32px); color:#fff; }
.guarantee p{ color:var(--text-muted); margin-top:12px; max-width:600px; font-size:16px; line-height:1.7; }

/* ---------- CREDIBILIDADE / FONTES ---------- */
.testi h2{ font-size:clamp(26px,4.2vw,38px); color:#fff; max-width:640px; }
.testi .lede{ color:var(--text-muted); max-width:680px; margin-top:18px; font-size:16.5px; line-height:1.7; }
.source-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; margin-top:48px; background:var(--border); border:1px solid var(--border); }
@media(max-width:900px){ .source-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px){ .source-grid{ grid-template-columns:1fr; } }
.source-card{ background:var(--bg-elev2); padding:28px 18px; text-align:center; }
.source-card h3{ font-family:'Fraunces',serif; font-size:16px; color:#fff; font-weight:600; line-height:1.3; }
.source-card p{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--text-faint); margin-top:10px; letter-spacing:.02em; line-height:1.4; }

/* ---------- FAQ ---------- */
.faq h2{ font-size:clamp(26px,4.2vw,38px); color:#fff; max-width:600px; }
.faq-list{ margin-top:40px; border-top:1px solid var(--border); }
.faq-item{ border-bottom:1px solid var(--border); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; color:var(--text);
  font-family:'Fraunces',serif; font-size:17px; font-weight:500; padding:24px 0; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:20px;
}
.faq-q:focus-visible{ outline:2px solid var(--sage); outline-offset:4px; }
.faq-q .plus{ font-family:'IBM Plex Mono',monospace; color:var(--ember-bright); font-size:20px; flex:0 0 auto; transition:transform .3s ease; }
.faq-item.open .faq-q .plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.faq-a-inner{ padding:0 0 26px; color:var(--text-muted); font-size:15.5px; max-width:760px; line-height:1.7; }

/* ---------- FINAL CTA ---------- */
.final{ text-align:center; padding:120px 0; }
.final .eyebrow{ justify-content:center; }
.final .eyebrow::before{ display:none; }
.final h2{ font-size:clamp(28px,5vw,46px); color:#fff; max-width:760px; margin:0 auto; }
.final .lede{ color:var(--text-muted); max-width:560px; margin:20px auto 0; font-size:16.5px; }
.final .cta-block{ align-items:center; margin-top:38px; }
.price-row{ display:flex; align-items:baseline; gap:12px; justify-content:center; margin-top:6px;}
.price-old{ text-decoration:line-through; color:var(--text-faint); font-family:'IBM Plex Mono',monospace; font-size:15px; }
.price-new{ font-family:'Fraunces',serif; font-size:30px; color:var(--sage); font-weight:600; }

footer{ border-top:1px solid var(--border); padding:40px 0; }
.foot-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
.foot-inner p{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--text-faint); }
