/* =========================================================
   DUNAS — Desenvolvimento de Software
   Design system: "dunas ao entardecer"
   ========================================================= */

:root{
  /* Cores */
  --ink:        #0d0a16;
  --ink-2:      #14101f;
  --ink-3:      #1a1528;
  --ink-card:   #181428;
  --sand:       #ece9f3;
  --sand-2:     #f5f3fb;
  --paper:      #ffffff;

  --gold:       #8b5cf6;
  --gold-hi:    #b79cff;
  --gold-deep:  #7c3aed;
  --dune-grad:  linear-gradient(118deg, #c084fc 0%, #8b5cf6 46%, #6d28d9 100%);

  --tx-dark:      #f1eff8;      /* texto sobre fundo escuro */
  --tx-dark-dim:  rgba(244,242,251,.60);
  --tx-dark-faint:rgba(244,242,251,.40);
  --tx-light:     #14171e;      /* texto sobre fundo claro */
  --tx-light-dim: rgba(20,23,30,.62);

  --line-d:  rgba(255,255,255,.10);
  --line-d2: rgba(255,255,255,.06);
  --line-l:  rgba(12,14,18,.12);
  --line-l2: rgba(12,14,18,.07);

  /* Tipografia */
  --f-display: "nagel-variable", "Arial Narrow", sans-serif;
  --f-body:    "helvetica-neue-lt-pro", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --f-serif:   "IBM Plex Serif", Georgia, serif;

  /* Layout */
  --wrap: 1200px;
  --wrap-narrow: 940px;
  --radius: 18px;
  --radius-lg: 26px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }

body{
  margin:0;
  font-family:var(--f-body);
  background:var(--sand);
  color:var(--tx-light);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
::selection{ background:var(--gold); color:#ffffff; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(20px,5vw,48px); }
.narrow{ max-width:var(--wrap-narrow); }

/* Tipos utilitários */
.display{
  font-family:var(--f-display);
  font-weight:400;
  line-height:.94;
  letter-spacing:-.02em;
  text-transform:none;
}
.eyebrow{
  font-family:var(--f-body);
  font-weight:700;
  font-size:12.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  display:inline-flex; align-items:center; gap:10px;
}
.eyebrow::before{
  content:""; width:26px; height:1px; background:var(--gold); display:inline-block;
}
.serif-it{ font-family:var(--f-serif); font-style:italic; font-weight:400; }
.br{ color:var(--gold); }               /* palavra-destaque */
.bracket::before{ content:"["; color:var(--gold); }
.bracket::after{ content:"]"; color:var(--gold); }

/* Botões */
.btn{
  --bg:var(--gold); --fg:#ffffff;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 26px; border-radius:999px;
  background:var(--bg); color:var(--fg);
  font-weight:700; font-size:15px; letter-spacing:.01em;
  border:1px solid transparent;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s, color .3s;
  white-space:nowrap;
}
.btn svg{ width:17px; height:17px; transition:transform .35s var(--ease); }
.btn:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(139,92,246,.7); }
.btn:hover svg{ transform:translateX(4px); }
.btn.gold{ background:var(--dune-grad); }
.btn.ghost{ background:transparent; color:var(--tx-dark); border-color:var(--line-d); }
.btn.ghost:hover{ background:rgba(255,255,255,.06); box-shadow:none; }
.btn.ghost-dark{ background:transparent; color:var(--tx-light); border-color:var(--line-l); }
.btn.ghost-dark:hover{ background:rgba(12,14,18,.04); box-shadow:none; }
.btn.lg{ padding:18px 34px; font-size:16px; }

/* Reveal on scroll — só esconde se o JS estiver ativo (html.js); senão, sempre visível */
html:not(.js) .reveal,
html:not(.js) .reveal-scale,
html:not(.js) .reveal-left,
html:not(.js) .reveal-right{ opacity:1 !important; transform:none !important; }
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; }
.reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }
@media (prefers-reduced-motion:reduce){ .reveal{opacity:1;transform:none;transition:none} }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  background-color:transparent;
  transition:border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; height:76px; color:var(--tx-dark); }
.brand img{ height:26px; width:auto; }
.brand .logo-dark{ display:none; }
.nav{ display:flex; align-items:center; gap:34px; }
.nav a.navlink{
  font-size:14.5px; font-weight:600; color:var(--tx-dark-dim);
  transition:color .25s; position:relative;
}
.nav a.navlink:hover{ color:var(--tx-dark); }
.header-cta{ display:flex; align-items:center; gap:16px; }
.header-cta .btn{ padding:11px 20px; font-size:14px; }

/* Header em modo "scrolled" (fundo claro) */
.site-header.scrolled{
  background-color:rgba(244,242,251,.9);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom-color:var(--line-l);
}
.site-header.scrolled .header-inner{ color:var(--tx-light); }
.site-header.scrolled .brand .logo-white{ display:none; }
.site-header.scrolled .brand .logo-dark{ display:block; }
.site-header.scrolled .nav a.navlink{ color:var(--tx-light-dim); }
.site-header.scrolled .nav a.navlink:hover{ color:var(--tx-light); }
.site-header.scrolled .btn.ghost{ color:var(--tx-light); border-color:var(--line-l); }
.site-header.scrolled .btn.ghost:hover{ background:rgba(12,14,18,.05); }

.burger{ display:none; background:none; border:0; width:44px; height:44px; padding:9px; color:currentColor; }
.burger span{ display:block; height:2px; background:currentColor; border-radius:2px; margin:5px 0; transition:.3s var(--ease); }

/* Menu mobile */
.mobile-menu{
  position:fixed; inset:0; z-index:99; background:var(--ink);
  display:flex; flex-direction:column; justify-content:center; gap:6px;
  padding:0 32px; transform:translateY(-100%); transition:transform .5s var(--ease);
  visibility:hidden;
}
.mobile-menu.open{ transform:none; visibility:visible; }
.mobile-menu a{ font-family:var(--f-display); font-size:clamp(34px,10vw,58px); color:var(--tx-dark); line-height:1.05; padding:6px 0; }
.mobile-menu a .br{ color:var(--gold); }
.mobile-menu .mm-cta{ margin-top:26px; }

/* =========================================================
   Seções base
   ========================================================= */
section{ position:relative; }
.sec-dark{ background:var(--ink); color:var(--tx-dark); }
.sec-sand{ background:var(--sand); color:var(--tx-light); }
.sec-sand-2{ background:var(--sand-2); color:var(--tx-light); }
.pad{ padding-block:clamp(76px,10vw,140px); }

.sec-head{ max-width:760px; }
.sec-head .eyebrow{ color:var(--gold-deep); }
.sec-dark .sec-head .eyebrow{ color:var(--gold-hi); }
.sec-title{ font-size:clamp(34px,5.4vw,66px); margin:22px 0 0; }
.sec-sub{ margin-top:22px; font-size:clamp(16px,1.4vw,19px); color:var(--tx-light-dim); max-width:560px; }
.sec-dark .sec-sub{ color:var(--tx-dark-dim); }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  background:
    radial-gradient(120% 80% at 50% 6%, rgba(139,92,246,.22), transparent 50%),
    radial-gradient(90% 60% at 15% 100%, rgba(139,92,246,.12), transparent 55%),
    radial-gradient(90% 60% at 85% 100%, rgba(192,132,252,.10), transparent 55%),
    var(--ink);
  color:var(--tx-dark);
  position:relative; overflow:hidden;
  padding-top:clamp(130px,15vw,172px); padding-bottom:clamp(60px,8vw,110px);
}
.hero::before{
  content:""; position:absolute; inset:0;
  background:url("img/grid.png") center/620px repeat;
  opacity:.05; mix-blend-mode:screen; pointer-events:none;
}
.hero-center{ position:relative; z-index:2; text-align:center; display:flex; flex-direction:column; align-items:center; }
.hero-pill{
  display:inline-block; font-size:13.5px; font-weight:600; color:var(--tx-dark);
  background:rgba(255,255,255,.05); border:1px solid var(--line-d);
  padding:9px 18px; border-radius:999px; backdrop-filter:blur(6px);
}
.hero h1{ font-size:clamp(44px,7.6vw,86px); margin:26px 0 0; max-width:16ch; }
.hero h1 .serif-it{ font-size:.94em; }
.hero-sub{ margin-top:26px; font-size:clamp(17px,1.5vw,20px); color:var(--tx-dark-dim); max-width:600px; line-height:1.55; }

/* Janela-mockup (chat) */
.hero-window{
  margin-top:clamp(44px,6vw,64px); width:100%; max-width:680px;
  background:#fbfbfd; border-radius:16px; overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 50px 110px -30px rgba(0,0,0,.75), 0 0 0 1px rgba(255,255,255,.04);
  text-align:left;
}
.win-bar{ display:flex; align-items:center; gap:8px; padding:14px 16px; background:#eceaf1; border-bottom:1px solid rgba(12,14,18,.06); }
.win-bar .dot{ width:12px; height:12px; border-radius:50%; }
.win-bar .dot.r{ background:#ff5f57; } .win-bar .dot.y{ background:#febc2e; } .win-bar .dot.g{ background:#28c840; }
.win-body{ padding:22px 24px 24px; }
.win-user{ display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.win-user .ub{ background:#efe9fb; color:#3a2a5e; font-size:13.5px; font-weight:500; padding:10px 15px; border-radius:16px 16px 4px 16px; max-width:78%; }
.win-user .ua{ width:34px; height:34px; border-radius:50%; background:var(--dune-grad); color:#fff; display:grid; place-items:center; font-weight:700; font-size:14px; flex:0 0 auto; }
.win-answers{ margin-top:20px; display:grid; gap:16px; }
.wa{ display:flex; align-items:center; gap:14px; }
.wa img{ width:34px; height:34px; border-radius:50%; flex:0 0 auto; background:#f0eef5; padding:5px; box-sizing:border-box; }
.wa .lines{ flex:1; display:grid; gap:7px; }
.wa .lines u{ display:block; height:9px; border-radius:5px; background:linear-gradient(90deg,#e7e4ee,#f1eff5); }
.win-reco{ margin-top:22px; display:flex; align-items:center; gap:12px; font-size:14px; color:#2c2440; background:#f3eefe; border:1px solid rgba(139,92,246,.28); border-radius:12px; padding:14px 16px; }
.win-reco b{ color:#6d28d9; }
.win-reco .reco-ic{ width:28px; height:28px; border-radius:50%; background:var(--dune-grad); color:#fff; display:grid; place-items:center; flex:0 0 auto; }
.win-reco .reco-ic svg{ width:15px; height:15px; }

/* =========================================================
   STATS BAR
   ========================================================= */
.stats{ border-top:1px solid var(--line-d); background:var(--ink-2); }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stat{ padding:clamp(38px,5vw,60px) 30px; border-right:1px solid var(--line-d2); }
.stat:last-child{ border-right:0; }
.stat .num{ font-family:var(--f-display); font-size:clamp(44px,5.4vw,68px); line-height:1; color:var(--tx-dark); }
.stat .num .u{ color:var(--gold); }
.stat .lbl{ margin-top:12px; font-size:14px; color:var(--tx-dark-dim); max-width:200px; }

/* =========================================================
   MARQUEE / confiança
   ========================================================= */
.trust-strip{ padding-block:clamp(40px,5vw,64px); border-bottom:1px solid var(--line-l2); }
.trust-strip .lead{ text-align:center; font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:var(--tx-light-dim); font-weight:700; }
.marquee{ margin-top:30px; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee-track{ display:flex; gap:64px; width:max-content; animation:scrollx 34s linear infinite; }
.marquee-track span{ font-family:var(--f-display); font-size:clamp(24px,3vw,34px); color:rgba(20,23,30,.34); white-space:nowrap; }
@keyframes scrollx{ to{ transform:translateX(-50%); } }

/* =========================================================
   SERVIÇOS
   ========================================================= */
.services-top{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap; }
.svc-grid{ margin-top:56px; display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.svc{
  position:relative; background:var(--paper); border:1px solid var(--line-l2);
  border-radius:var(--radius-lg); padding:38px 36px; overflow:hidden;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s;
}
.svc:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -34px rgba(12,14,18,.4); border-color:rgba(139,92,246,.5); }
.svc .num{ font-family:var(--f-serif); font-style:italic; font-size:15px; color:var(--gold-deep); }
.svc .ic{
  width:58px; height:58px; border-radius:15px; margin:22px 0 24px;
  background:linear-gradient(180deg,#fff,#efecf9); border:1px solid var(--line-l2);
  display:grid; place-items:center; color:var(--ink); box-shadow:0 8px 20px -12px rgba(12,14,18,.5);
  transition:background .4s, color .4s, transform .5s var(--ease);
}
.svc:hover .ic{ background:var(--dune-grad); color:#ffffff; transform:scale(1.06) rotate(-3deg); }
.svc .ic svg{ width:27px; height:27px; }
.svc h3{ font-family:var(--f-display); font-weight:400; font-size:29px; margin:0 0 12px; letter-spacing:-.01em; }
.svc p{ margin:0; color:var(--tx-light-dim); font-size:15.5px; }
.svc .tags{ margin-top:22px; display:flex; flex-wrap:wrap; gap:8px; }
.svc .tags b{ font-size:12px; font-weight:600; color:var(--tx-light-dim); background:var(--sand-2); border:1px solid var(--line-l2); padding:6px 11px; border-radius:999px; }
.svc .glow{ position:absolute; right:-40px; top:-40px; width:160px; height:160px; background:radial-gradient(circle,rgba(139,92,246,.35),transparent 70%); opacity:0; transition:opacity .5s; pointer-events:none; }
.svc:hover .glow{ opacity:1; }

/* =========================================================
   STATEMENT (editorial escuro) + problem cards
   ========================================================= */
.statement h2{ font-size:clamp(38px,6.6vw,88px); max-width:14ch; }
.statement .lead{ margin-top:30px; max-width:520px; color:var(--tx-dark-dim); font-size:clamp(17px,1.5vw,20px); }
.prob-grid{ margin-top:66px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.prob{ border:1px solid var(--line-d); border-radius:var(--radius); padding:30px 28px; background:linear-gradient(180deg,rgba(255,255,255,.03),transparent); transition:border-color .4s, transform .5s var(--ease); }
.prob:hover{ border-color:rgba(139,92,246,.4); transform:translateY(-5px); }
.prob .step{ font-family:var(--f-serif); font-style:italic; color:var(--gold-hi); font-size:15px; }
.prob h4{ font-family:var(--f-display); font-weight:400; font-size:26px; margin:16px 0 12px; }
.prob p{ margin:0; color:var(--tx-dark-dim); font-size:15px; }

/* =========================================================
   SHOWCASE (dashboard + phone)
   ========================================================= */
.showcase-grid{ margin-top:64px; display:grid; grid-template-columns:1.35fr .65fr; gap:26px; align-items:stretch; }
.panel{
  border:1px solid var(--line-d); border-radius:var(--radius-lg); overflow:hidden;
  background:linear-gradient(180deg,#141821,#0f131a); position:relative;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.7);
}
.panel .glow-top{ position:absolute; inset:0 0 auto 0; height:200px; background:radial-gradient(80% 120% at 30% 0,rgba(139,92,246,.20),transparent 60%); pointer-events:none; }

/* Dashboard mock */
.dash{ padding:26px 26px 30px; position:relative; }
.dash-head{ display:flex; align-items:center; justify-content:space-between; }
.dash-head .t{ font-family:var(--f-display); font-size:22px; }
.dash-head .t small{ display:block; font-family:var(--f-body); font-size:12px; color:var(--tx-dark-dim); letter-spacing:.02em; margin-top:4px; }
.pill{ font-size:12px; color:var(--gold-hi); border:1px solid rgba(139,92,246,.4); border-radius:999px; padding:6px 12px; }
.kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:24px; }
.kpi{ background:rgba(255,255,255,.03); border:1px solid var(--line-d2); border-radius:14px; padding:16px; }
.kpi span{ font-size:12px; color:var(--tx-dark-dim); }
.kpi b{ display:block; font-family:var(--f-display); font-size:30px; margin-top:8px; }
.kpi b i{ font-style:normal; color:var(--gold); font-size:16px; }
.chart{ margin-top:20px; display:flex; align-items:flex-end; gap:10px; height:130px; padding:16px; background:rgba(255,255,255,.02); border:1px solid var(--line-d2); border-radius:14px; }
.chart .bar{ flex:1; background:var(--dune-grad); border-radius:6px 6px 3px 3px; opacity:.85; height:20%; transition:height 1.2s var(--ease); }
.dash-rows{ margin-top:16px; }
.drow{ display:flex; align-items:center; justify-content:space-between; padding:12px 4px; border-top:1px solid var(--line-d2); font-size:13.5px; }
.drow:first-child{ border-top:0; }
.drow .who{ display:flex; align-items:center; gap:10px; color:var(--tx-dark); }
.drow .who i{ width:26px; height:26px; border-radius:8px; background:var(--dune-grad); display:inline-block; }
.drow .st{ font-size:11.5px; padding:4px 9px; border-radius:999px; }
.drow .st.ok{ color:#9ece6a; background:rgba(158,206,106,.12); }
.drow .st.run{ color:var(--gold-hi); background:rgba(139,92,246,.12); }

/* Phone mock */
.phone{ padding:26px; display:flex; flex-direction:column; }
.phone .device{
  margin:auto; width:100%; max-width:240px; aspect-ratio:9/18.6;
  background:linear-gradient(180deg,#1b2029,#12161d); border:1px solid var(--line-d);
  border-radius:34px; padding:12px; box-shadow:0 30px 60px -30px rgba(0,0,0,.8), 0 0 0 8px rgba(255,255,255,.02);
  position:relative; overflow:hidden;
}
.phone .notch{ width:38%; height:20px; background:#0d0a16; border-radius:0 0 14px 14px; margin:0 auto 14px; }
.phone .app-top{ display:flex; align-items:center; justify-content:space-between; padding:0 6px; }
.phone .app-top b{ font-family:var(--f-display); font-size:17px; }
.phone .app-top i{ width:24px; height:24px; border-radius:50%; background:var(--dune-grad); display:inline-block; }
.phone .balance{ margin:16px 6px 0; padding:16px; border-radius:16px; background:var(--dune-grad); color:#ffffff; }
.phone .balance span{ font-size:11px; opacity:.8; } .phone .balance b{ display:block; font-family:var(--f-display); font-size:27px; margin-top:5px; }
.phone .list{ margin-top:14px; padding:0 4px; }
.phone .li{ display:flex; align-items:center; gap:10px; padding:9px 4px; border-top:1px solid var(--line-d2); }
.phone .li i{ width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.06); flex:0 0 auto; }
.phone .li .bar{ flex:1; } .phone .li .bar u{ display:block; height:7px; border-radius:4px; background:rgba(255,255,255,.10); }
.phone .li .bar u:last-child{ width:60%; margin-top:6px; background:rgba(255,255,255,.06); }
.showcase-copy{ margin-top:40px; max-width:620px; }

/* =========================================================
   PROCESSO (timeline)
   ========================================================= */
.proc-grid{ margin-top:60px; display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.proc{ padding:34px 26px 40px 0; border-top:2px solid var(--line-l); position:relative; }
.proc::before{ content:""; position:absolute; top:-2px; left:0; width:44px; height:2px; background:var(--gold); }
.proc .n{ font-family:var(--f-serif); font-style:italic; color:var(--gold-deep); font-size:15px; }
.proc h4{ font-family:var(--f-display); font-weight:400; font-size:26px; margin:14px 0 12px; }
.proc p{ margin:0; font-size:14.5px; color:var(--tx-light-dim); }

/* =========================================================
   DIFERENCIAIS (pilares com meters)
   ========================================================= */
.pillars{ margin-top:60px; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.pillar{ border:1px solid var(--line-d); border-radius:var(--radius-lg); padding:36px 32px; background:linear-gradient(180deg,rgba(255,255,255,.03),transparent); }
.pillar .ic{ width:52px;height:52px;border-radius:14px;background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.3);display:grid;place-items:center;color:var(--gold-hi); }
.pillar .ic svg{ width:25px;height:25px; }
.pillar h4{ font-family:var(--f-display); font-weight:400; font-size:28px; margin:22px 0 12px; }
.pillar p{ margin:0 0 22px; color:var(--tx-dark-dim); font-size:15px; }
.meter{ height:6px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.meter i{ display:block; height:100%; width:0; border-radius:999px; background:var(--dune-grad); transition:width 1.4s var(--ease); }
.pillar .mlabel{ display:flex; justify-content:space-between; font-size:12.5px; color:var(--tx-dark-dim); margin-top:10px; }
.pillar .mlabel b{ color:var(--gold-hi); }

/* =========================================================
   SOBRE / EQUIPE
   ========================================================= */
.about-grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(40px,6vw,80px); align-items:center; }
.about-copy h2{ font-size:clamp(34px,4.8vw,58px); }
.about-copy .p{ margin-top:24px; color:var(--tx-light-dim); font-size:17px; }

.about-photo{ position:relative; }
.about-photo figure{
  margin:0; border-radius:24px; overflow:hidden; position:relative; z-index:1;
  aspect-ratio:4/3.4; background:#e5e1ec;
  border:1px solid rgba(255,255,255,.6);
  box-shadow:0 44px 90px -36px rgba(24,18,38,.55);
}
.about-photo img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.about-photo:hover img{ transform:scale(1.05); }
.about-photo::before{
  content:""; position:absolute; inset:-12%; z-index:0; pointer-events:none;
  background:radial-gradient(ellipse at 60% 42%, rgba(139,92,246,.32), transparent 62%);
  filter:blur(42px); animation:aurora 18s ease-in-out infinite alternate;
}

/* Faixa de tecnologias */
.tech-strip{ margin-top:clamp(56px,7vw,90px); }
.tech-head{ display:flex; align-items:center; gap:24px; }
.tech-label{ font-size:12.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--tx-light-dim); white-space:nowrap; }
.tech-line{ flex:1; height:1px; background:var(--line-l); }
.tech-row{
  margin-top:36px; display:flex; align-items:center; justify-content:space-between;
  gap:clamp(18px,3.5vw,40px); flex-wrap:wrap;
}
.tech{
  display:inline-flex; align-items:center; gap:11px;
  font-family:var(--f-display); font-size:clamp(17px,2vw,23px); letter-spacing:-.01em;
  color:rgba(20,23,30,.40); transition:color .3s var(--ease);
}
.tech .ti{ width:25px; height:25px; opacity:.5; transition:opacity .3s var(--ease); flex:0 0 auto; }
.tech:hover{ color:var(--tx-light); }
.tech:hover .ti{ opacity:1; }

/* =========================================================
   DEPOIMENTO
   ========================================================= */
.quote{ text-align:center; max-width:900px; margin-inline:auto; }
.quote .mark{ font-family:var(--f-serif); font-size:80px; line-height:.5; color:var(--gold); }
.quote blockquote{ font-family:var(--f-display); font-weight:400; font-size:clamp(28px,4vw,50px); line-height:1.12; margin:20px 0 0; letter-spacing:-.01em; }
.quote blockquote .br{ color:var(--gold-hi); }
.quote .who{ margin-top:34px; font-size:15px; color:var(--tx-dark-dim); }
.quote .who b{ color:var(--tx-dark); }

/* =========================================================
   FAQ
   ========================================================= */
.faq-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(30px,5vw,64px); align-items:start; }
.faq-list{ border-top:1px solid var(--line-l); }
.faq-item{ border-bottom:1px solid var(--line-l); }
.faq-q{ width:100%; text-align:left; background:none; border:0; padding:26px 0; display:flex; justify-content:space-between; align-items:center; gap:24px; font-family:var(--f-display); font-weight:400; font-size:clamp(20px,2.2vw,26px); color:var(--tx-light); letter-spacing:-.01em; }
.faq-q .plus{ flex:0 0 auto; width:30px; height:30px; border-radius:50%; border:1px solid var(--line-l); position:relative; transition:.35s var(--ease); }
.faq-q .plus::before,.faq-q .plus::after{ content:""; position:absolute; inset:0; margin:auto; background:var(--tx-light); }
.faq-q .plus::before{ width:12px; height:2px; } .faq-q .plus::after{ width:2px; height:12px; transition:transform .35s var(--ease); }
.faq-item.open .faq-q .plus{ background:var(--gold); border-color:var(--gold); }
.faq-item.open .faq-q .plus::before,.faq-item.open .faq-q .plus::after{ background:#ffffff; }
.faq-item.open .faq-q .plus::after{ transform:rotate(90deg); opacity:0; }
.faq-a{ overflow:hidden; height:0; transition:height .4s var(--ease); }
.faq-a .inner{ padding:0 0 26px; color:var(--tx-light-dim); font-size:16px; max-width:60ch; }

/* =========================================================
   CTA band
   ========================================================= */
.cta-band{ position:relative; overflow:hidden;
  color:var(--tx-dark);
  background:
    radial-gradient(90% 120% at 50% 0,rgba(139,92,246,.22),transparent 55%),
    var(--ink);
}
.cta-inner{ text-align:center; position:relative; z-index:2; }
.cta-band::before{ content:""; position:absolute; inset:0; background:url("img/grid.png") center/560px repeat; opacity:.05; mix-blend-mode:screen; }
.cta-band h2{ font-size:clamp(38px,6vw,82px); max-width:16ch; margin-inline:auto; }
.cta-band .sub{ margin:26px auto 0; max-width:480px; color:var(--tx-dark-dim); font-size:18px; }
.cta-actions{ margin-top:38px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ background:var(--ink); color:var(--tx-dark); border-top:1px solid var(--line-d); }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-block:clamp(56px,7vw,86px); }
.footer .brand img{ height:30px; }
.footer .fdesc{ margin-top:22px; color:var(--tx-dark-dim); font-size:15px; max-width:300px; }
.footer .socials{ margin-top:24px; display:flex; gap:10px; }
.footer .socials a{ width:40px;height:40px;border-radius:50%;border:1px solid var(--line-d);display:grid;place-items:center;color:var(--tx-dark-dim);transition:.3s; }
.footer .socials a:hover{ color:#ffffff; background:var(--gold); border-color:var(--gold); }
.footer .socials svg{ width:18px;height:18px; }
.footer h5{ font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--tx-dark-faint); margin:0 0 20px; font-weight:700; }
.footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:13px; }
.footer ul a{ color:var(--tx-dark-dim); font-size:15px; transition:color .25s; }
.footer ul a:hover{ color:var(--tx-dark); }
.footer-bottom{ border-top:1px solid var(--line-d); padding-block:26px; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; color:var(--tx-dark-faint); font-size:13.5px; }

/* =========================================================
   MOVIMENTO & ANIMAÇÕES
   ========================================================= */

/* Barra de progresso de scroll */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:100%;
  background:var(--dune-grad); transform:scaleX(0); transform-origin:0 50%;
  z-index:200; will-change:transform;
}

/* Grão sutil sobre o site inteiro */
body::after{
  content:""; position:fixed; inset:0; z-index:150; pointer-events:none; opacity:.03;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* Aurora animada (dentro de seções com overflow:hidden) */
.hero::after, .cta-band::after, .statement::after{
  content:""; position:absolute; z-index:1; pointer-events:none;
  width:60vw; height:60vw; max-width:820px; max-height:820px; border-radius:50%;
  background:radial-gradient(circle, rgba(139,92,246,.30), transparent 62%);
  filter:blur(30px); top:-16%; left:16%;
  animation:aurora 18s ease-in-out infinite alternate;
}
.cta-band::after{ background:radial-gradient(circle, rgba(192,132,252,.28), transparent 62%); top:-24%; left:30%; animation-duration:22s; }
.statement::after{ background:radial-gradient(circle, rgba(139,92,246,.20), transparent 62%); top:auto; bottom:-20%; left:auto; right:8%; animation-duration:20s; }
@keyframes aurora{
  0%{ transform:translate(-12%,0) scale(1); opacity:.7; }
  50%{ transform:translate(10%,8%) scale(1.18); opacity:1; }
  100%{ transform:translate(-6%,-6%) scale(1.05); opacity:.85; }
}
.statement{ overflow:hidden; }
.statement .wrap, .cta-inner{ position:relative; z-index:2; }

/* Onda/glow animado no RODAPÉ (estilo cytd) */
.footer{ position:relative; overflow:hidden; isolation:isolate; }
.footer::before{
  content:""; position:absolute; left:50%; bottom:-55%; width:150%; height:110%;
  margin-left:-75%; pointer-events:none; z-index:0;
  background:radial-gradient(ellipse at center,
    rgba(139,92,246,.45) 0%, rgba(124,58,237,.22) 34%, rgba(139,92,246,.06) 55%, transparent 70%);
  animation:footerWave 13s ease-in-out infinite alternate;
}
.footer::after{
  content:""; position:absolute; left:50%; bottom:-30%; width:90%; height:70%;
  margin-left:-45%; pointer-events:none; z-index:0; filter:blur(20px);
  background:radial-gradient(ellipse at center, rgba(192,132,252,.30), transparent 62%);
  animation:footerWave 9s ease-in-out infinite alternate-reverse;
}
.footer > *{ position:relative; z-index:1; }
@keyframes footerWave{
  0%{ transform:scale(1) translateY(6%); opacity:.7; }
  50%{ transform:scale(1.12) translateY(0); opacity:1; }
  100%{ transform:scale(1.04) translateY(3%); opacity:.82; }
}

/* Onda/glow animado no TOPO (horizonte do hero) */
.hero{ isolation:isolate; }
.hero .top-wave{
  position:absolute; left:50%; top:-42%; width:140%; height:78vh;
  margin-left:-70%; pointer-events:none; z-index:1;
  background:radial-gradient(ellipse at center,
    rgba(139,92,246,.42) 0%, rgba(124,58,237,.18) 36%, transparent 66%);
  animation:footerWave 15s ease-in-out infinite alternate;
}

/* Halo pulsante atrás da janela do hero */
.hero-window{ position:relative; }
.hero-window::before{
  content:""; position:absolute; inset:-3px; border-radius:18px; z-index:-1;
  background:var(--dune-grad); filter:blur(34px); opacity:.3;
  animation:pulseGlow 4.5s ease-in-out infinite;
}
@keyframes pulseGlow{ 0%,100%{opacity:.22} 50%{opacity:.5} }

/* Shimmer nas barras de "carregamento" do chat */
.wa .lines u{
  background:linear-gradient(90deg,#e7e4ee 25%,#f4f1fa 50%,#e7e4ee 75%);
  background-size:220% 100%;
  animation:shimmer 1.8s linear infinite;
}
@keyframes shimmer{ 0%{ background-position:120% 0; } 100%{ background-position:-120% 0; } }

/* Check da recomendação pulsando */
.win-reco .reco-ic{ animation:pop 2.6s ease-in-out infinite; }
@keyframes pop{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.14); } }

/* Underline animado no nav */
.nav a.navlink::after{
  content:""; position:absolute; left:0; bottom:-6px; height:2px; width:100%;
  background:var(--gold); transform:scaleX(0); transform-origin:0 50%;
  transition:transform .32s var(--ease);
}
.nav a.navlink:hover::after{ transform:scaleX(1); }

/* Brilho que varre os botões cheios */
.btn.gold{ position:relative; overflow:hidden; }
.btn.gold::after{
  content:""; position:absolute; top:0; left:-70%; width:45%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);
  transform:skewX(-20deg); transition:left .7s var(--ease); pointer-events:none;
}
.btn.gold:hover::after{ left:130%; }

/* Variações de reveal */
.reveal-scale{ opacity:0; transform:scale(.93); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-scale.in{ opacity:1; transform:none; }
.reveal-left{ opacity:0; transform:translateX(-30px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal-left.in{ opacity:1; transform:none; }
.reveal-right{ opacity:0; transform:translateX(30px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal-right.in{ opacity:1; transform:none; }

/* Badge flutuante sobre as fotos */
.about-photo{ position:relative; }
.photo-badge{
  position:absolute; left:-18px; bottom:-18px; z-index:3;
  background:rgba(20,16,31,.86); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.14); border-radius:16px;
  padding:14px 18px; box-shadow:0 24px 50px -20px rgba(0,0,0,.6);
  animation:floatBadge 5.5s ease-in-out infinite;
}
.photo-badge b{ font-family:var(--f-display); font-size:30px; color:#fff; display:block; line-height:1; }
.photo-badge span{ font-size:12.5px; color:var(--tx-dark-dim); }
@keyframes floatBadge{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }

/* Linha do processo cresce ao revelar */
.proc::before{ transform:scaleX(0); transform-origin:0 50%; transition:transform .7s var(--ease); }
.proc.in::before{ transform:scaleX(1); }

/* Ícone dos serviços ganha leve balanço ao revelar */
.svc.in .ic{ animation:iconPop .6s var(--ease); }
@keyframes iconPop{ 0%{ transform:scale(.7) rotate(-8deg); opacity:.4; } 100%{ transform:scale(1) rotate(0); opacity:1; } }

/* Respeitar quem prefere menos movimento */
@media (prefers-reduced-motion:reduce){
  .hero::after,.cta-band::after,.statement::after,.hero-window::before,
  .wa .lines u,.win-reco .reco-ic,.photo-badge{ animation:none !important; }
  .scroll-progress{ display:none; }
}

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width:1080px){
  .hero-grid{ grid-template-columns:1fr; gap:70px; }
  .mock{ max-width:520px; }
  .editor{ transform:none; }
  .mock:hover .editor{ transform:none; }
  .showcase-grid{ grid-template-columns:1fr; }
  .about-grid{ grid-template-columns:1fr; }
  .faq-grid{ grid-template-columns:1fr; }
}
@media (max-width:860px){
  .nav, .header-cta .btn.ghost{ display:none; }
  .burger{ display:block; }
  .header-cta .btn.gold{ display:none; }
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(2){ border-right:0; }
  .stat:nth-child(1),.stat:nth-child(2){ border-bottom:1px solid var(--line-d2); }
  .svc-grid{ grid-template-columns:1fr; }
  .prob-grid{ grid-template-columns:1fr; }
  .proc-grid{ grid-template-columns:1fr 1fr; }
  .pillars{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .footer .brand{ grid-column:1/-1; }
  .tech-head{ flex-direction:column; align-items:flex-start; gap:16px; }
  .tech-label{ white-space:normal; }
  .tech-line{ width:100%; }
  .tech-row{ justify-content:flex-start; gap:22px 30px; }
}
@media (max-width:560px){
  body{ font-size:16px; }
  .hero{ padding-top:120px; }
  .hero-actions .btn{ flex:1; }
  .stats-grid{ grid-template-columns:1fr; }
  .stat{ border-right:0 !important; border-bottom:1px solid var(--line-d2); }
  .stat:last-child{ border-bottom:0; }
  .about-facts{ grid-template-columns:1fr 1fr; }
  .proc-grid{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr; }
  .mock-badge.b1{ right:-8px; } .mock-badge.b2{ left:-8px; }
  .cta-actions .btn{ flex:1; }
}
