/* ==========================================================================
   G3 Mídia — sistema visual
   ========================================================================== */

:root{
  --ink:#05070f;
  --ink-2:#080c18;
  --panel:#0b1020;
  --panel-2:#111a33;
  --line:rgba(255,255,255,.09);
  --line-strong:rgba(255,255,255,.16);
  --text:#f2f5fb;
  --muted:#97a3ba;
  --dim:#5f6b80;
  --blue:#2f9bff;
  --violet:#7b5cff;
  --gold:#ffb020;
  --gold-2:#ffd469;
  --green:#2fd97a;

  --display:'Archivo',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  --body:'Inter Tight',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --wrap:1200px;
  --pad:28px;
  --r-lg:22px;
  --r-md:16px;
  --ease:cubic-bezier(.22,1,.36,1);
}

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

html{scroll-behavior:smooth;overflow-x:clip;max-width:100%}

body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:var(--body);
  font-size:16.5px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
  max-width:100%;
}

img{max-width:100%;display:block}
a{color:inherit}

::selection{background:var(--violet);color:#fff}

/* ---------- barra de progresso de leitura ---------- */
.progress{
  position:fixed;left:0;top:0;height:2px;width:100%;z-index:120;
  transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--blue),var(--violet) 55%,var(--gold));
}

/* ---------- fundo aurora ---------- */
.aurora{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
.aurora span{
  position:absolute;border-radius:50%;filter:blur(86px);opacity:.62;
  animation:drift 26s var(--ease) infinite alternate;
}
.aurora span:nth-child(1){width:640px;height:640px;left:-160px;top:-180px;background:rgba(47,155,255,.42)}
.aurora span:nth-child(2){width:560px;height:560px;right:-140px;top:6%;background:rgba(123,92,255,.36);animation-duration:32s;animation-delay:-6s}
.aurora span:nth-child(3){width:520px;height:520px;left:38%;top:52%;background:rgba(255,176,32,.20);animation-duration:38s;animation-delay:-12s}
.aurora::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(1100px 660px at 50% -12%, rgba(5,7,15,0), rgba(5,7,15,.62) 72%),
    linear-gradient(180deg, rgba(5,7,15,.14), rgba(5,7,15,.90) 64%);
}
@keyframes drift{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(60px,-40px,0) scale(1.12)}
  100%{transform:translate3d(-50px,60px,0) scale(.94)}
}

/* ---------- grade técnica de fundo ---------- */
.gridlines{
  position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.35;
  background-image:
    linear-gradient(rgba(255,255,255,.030) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.030) 1px,transparent 1px);
  background-size:82px 82px;
  mask-image:radial-gradient(1100px 700px at 50% 0%,#000,transparent 78%);
  -webkit-mask-image:radial-gradient(1100px 700px at 50% 0%,#000,transparent 78%);
}

/* ---------- navegação ---------- */
.nav{
  position:sticky;top:0;z-index:100;
  background:rgba(5,7,15,.78);
  backdrop-filter:saturate(150%) blur(14px);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-in{
  max-width:var(--wrap);margin:0 auto;padding:14px var(--pad);
  display:flex;align-items:center;gap:26px;
}
.nav-logo{flex:0 0 auto;display:block}
.nav-logo img{height:34px;width:auto}
.nav-links{
  display:flex;align-items:center;gap:2px;margin-left:auto;
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{
  padding:9px 14px;border-radius:999px;white-space:nowrap;
  color:var(--muted);font-size:14.5px;font-weight:500;text-decoration:none;
  transition:color .2s var(--ease),background .2s var(--ease);
}
.nav-links a:hover{color:var(--text);background:rgba(255,255,255,.07)}
.nav-links a[aria-current="page"]{color:var(--text);background:rgba(255,255,255,.09)}
.nav-cta{
  flex:0 0 auto;padding:11px 20px;border-radius:999px;white-space:nowrap;
  background:linear-gradient(135deg,var(--gold-2),var(--gold));
  color:#0a0d16;font-weight:700;font-size:14.5px;text-decoration:none;
  box-shadow:0 10px 26px rgba(255,176,32,.26);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease);
}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(255,176,32,.4)}

/* ---------- blocos ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
section{position:relative}
.sec{padding:112px 0}
.sec-tight{padding:92px 0}

.eyebrow{
  display:inline-flex;align-items:flex-start;gap:9px;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  line-height:1.5;color:var(--blue);
}
.eyebrow::before{
  content:"";width:7px;height:7px;flex:0 0 auto;margin-top:.42em;border-radius:50%;
  background:linear-gradient(135deg,var(--blue),var(--violet));
  box-shadow:0 0 0 4px rgba(47,155,255,.16);
}
.eyebrow.gold{color:var(--gold)}
.eyebrow.gold::before{background:linear-gradient(135deg,var(--gold-2),var(--gold));box-shadow:0 0 0 4px rgba(255,176,32,.16)}

h1,h2,h3,h4{font-family:var(--display);font-weight:800;letter-spacing:-.03em;line-height:1.03;margin:0}
h2{font-size:clamp(30px,4.4vw,52px);text-wrap:balance}
h3{font-size:22px;letter-spacing:-.02em;line-height:1.18}
p{margin:0}

.lead{color:var(--muted);font-size:17.5px;line-height:1.68;max-width:62ch}
.head{max-width:760px;position:relative}
.head h2{margin-top:16px}
.head .lead{margin-top:18px}
.head-center{margin-left:auto;margin-right:auto;text-align:center}
.head-center .lead{margin-left:auto;margin-right:auto}

/* número fantasma atrás do título */
.ghost{
  position:absolute;right:-32px;top:-62px;z-index:0;pointer-events:none;
  font-family:var(--display);font-weight:900;font-size:clamp(110px,17vw,230px);
  line-height:.8;letter-spacing:-.05em;
  color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.055);
}

/* ---------- hero ---------- */
.hero{padding:118px 0 96px;position:relative;overflow:hidden}
.hero-in{max-width:980px}
.hero h1{
  font-size:clamp(40px,7.4vw,86px);letter-spacing:-.04em;line-height:.98;
  margin-top:24px;text-wrap:balance;font-weight:900;
}
.hero h1 em{
  font-style:normal;
  color:var(--gold);
  background-image:linear-gradient(100deg,var(--gold-2),var(--gold) 45%,var(--violet));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hero .lead{margin-top:24px;font-size:19px;max-width:60ch}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}

.hero-stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:1px;margin-top:76px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
}
.hero-stats div{background:rgba(11,16,32,.86);padding:24px 22px}
.hero-stats b{
  display:block;font-family:var(--display);font-weight:900;font-size:34px;
  letter-spacing:-.03em;line-height:1;
  color:var(--blue);
  background-image:linear-gradient(120deg,var(--blue),var(--violet));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hero-stats span{display:block;margin-top:9px;color:var(--muted);font-size:13.5px;line-height:1.45}
.hero-stats b span{display:inline;margin:0;font-size:inherit;line-height:inherit;color:inherit}

/* ---------- botões ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:16px 28px;border-radius:13px;
  font-weight:700;font-size:15.5px;text-decoration:none;
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),background .22s var(--ease),border-color .22s var(--ease);
}
.btn-gold{
  background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#0a0d16;
  box-shadow:0 16px 36px rgba(255,176,32,.26);
}
.btn-gold:hover{transform:translateY(-3px);box-shadow:0 24px 50px rgba(255,176,32,.42)}
.btn-ghost{border:1px solid var(--line-strong);color:var(--text);background:transparent}
.btn-ghost:hover{transform:translateY(-3px);border-color:rgba(47,155,255,.6);background:rgba(47,155,255,.1)}
.btn svg{width:16px;height:16px;flex:0 0 auto}

/* ---------- cards ---------- */
.grid{display:grid;gap:22px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3c{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.grid-orbs{margin-top:96px;row-gap:74px}

.card{
  position:relative;isolation:isolate;
  padding:30px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:
    linear-gradient(158deg,rgba(255,255,255,.055),rgba(255,255,255,0) 46%),
    var(--panel);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  transition:transform .32s var(--ease),box-shadow .32s var(--ease),border-color .32s var(--ease);
}
.card::before{
  content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;
  opacity:0;transition:opacity .32s var(--ease);
  background:radial-gradient(420px 220px at var(--mx,50%) var(--my,0%),rgba(47,155,255,.16),transparent 62%);
}
.card:hover{transform:translateY(-7px);border-color:rgba(47,155,255,.42);box-shadow:0 30px 66px rgba(0,0,0,.55)}
.card:hover::before{opacity:1}
.card h3{margin-bottom:11px}
.card p{color:var(--muted);font-size:15px;line-height:1.65}
.card-tag{
  display:block;font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blue);margin-bottom:12px;
}
.card-link{
  display:inline-flex;align-items:center;gap:7px;margin-top:20px;
  color:var(--blue);font-weight:600;font-size:14.5px;text-decoration:none;white-space:nowrap;
  transition:color .2s var(--ease),gap .2s var(--ease);
}
.card-link:hover{color:var(--gold);gap:12px}
.card-link svg{flex:0 0 auto;width:15px;height:15px}
.card-hl{
  background:
    linear-gradient(158deg,rgba(123,92,255,.16),rgba(47,155,255,.06) 52%,rgba(255,255,255,0)),
    var(--panel-2);
  border-color:rgba(123,92,255,.34);
}

/* orbe de ícone sobreposto */
.orb{
  position:absolute;top:-32px;left:28px;z-index:2;
  width:66px;height:66px;border-radius:50%;
  display:grid;place-items:center;
  background:linear-gradient(140deg,var(--blue),var(--violet) 58%,var(--gold));
  box-shadow:0 0 0 8px var(--ink),0 18px 40px rgba(47,155,255,.45);
  transition:transform .32s var(--ease);
}
.orb svg{width:28px;height:28px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.orb b{font-family:var(--display);font-weight:900;font-size:21px;color:#fff;letter-spacing:-.02em}
.card:hover .orb{transform:scale(1.09) rotate(-6deg)}
.card-orb{padding-top:52px}

/* ---------- lista de checagem ---------- */
.list{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:12px}
.list li{position:relative;padding-left:30px;color:var(--muted);font-size:15px;line-height:1.6}
.list li::before{
  content:"";position:absolute;left:0;top:7px;width:17px;height:17px;border-radius:50%;
  background:linear-gradient(135deg,var(--blue),var(--violet));
  box-shadow:0 0 0 3px rgba(47,155,255,.14);
}
.list li::after{
  content:"";position:absolute;left:5px;top:12px;width:6px;height:3px;
  border-left:1.8px solid #fff;border-bottom:1.8px solid #fff;transform:rotate(-45deg);
}

/* ---------- marquee de logotipos ---------- */
.marquee{
  position:relative;overflow:hidden;padding:26px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:rgba(8,12,24,.6);
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
}
.marquee-track{display:flex;gap:18px;width:max-content;animation:slide 42s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.logo-tile{
  flex:0 0 auto;width:148px;height:92px;border-radius:14px;background:#fff;
  background-repeat:no-repeat;background-position:50% 50%;background-size:contain;
  box-shadow:0 14px 34px rgba(0,0,0,.42);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.logo-tile:hover{transform:translateY(-5px) scale(1.04);box-shadow:0 22px 48px rgba(0,0,0,.6)}

/* ---------- método: cards que empilham no scroll ---------- */
.stack{margin-top:70px;display:grid;gap:26px}
.stack-item{position:sticky;top:112px}
.stack-item .card{
  display:grid;grid-template-columns:96px 1fr;gap:30px;align-items:start;
  padding:38px;background-color:#0c1226;
  background-image:linear-gradient(158deg,rgba(255,255,255,.06),rgba(255,255,255,0) 46%);
}
.step-n{
  font-family:var(--display);font-weight:900;font-size:60px;line-height:.85;
  letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.4px rgba(123,92,255,.75);
}
.stack-item h3{font-size:26px}
.stack-item p{margin-top:12px;font-size:15.5px}

/* ---------- portfólio ---------- */
.case{
  position:relative;overflow:hidden;
  padding:30px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:linear-gradient(158deg,rgba(255,255,255,.05),rgba(255,255,255,0) 46%),var(--panel);
  transition:transform .34s var(--ease),border-color .34s var(--ease),box-shadow .34s var(--ease);
}
.case:hover{transform:translateY(-8px);border-color:rgba(47,155,255,.45);box-shadow:0 30px 66px rgba(0,0,0,.55)}
.case .logo-tile{width:136px;height:86px;margin-bottom:22px}
.case h3{font-size:21px}
.case .card-tag{margin:12px 0 10px}
.case p{color:var(--muted);font-size:14.5px;line-height:1.62}

/* ---------- página de serviço (padrão HB) ---------- */
.svc-hero{padding:104px 0 82px;position:relative;overflow:hidden}
.svc-hero .wrap{position:relative;z-index:1}
.svc-hero h1{font-size:clamp(36px,6vw,68px);font-weight:900;letter-spacing:-.04em;margin-top:20px;text-wrap:balance}
.svc-hero .lead{margin-top:22px;font-size:18.5px}
.svc-art{
  position:absolute;right:-90px;top:50%;transform:translateY(-50%);
  width:min(560px,48vw);aspect-ratio:1;opacity:.9;pointer-events:none;
}
.phase{
  display:grid;grid-template-columns:220px 1fr;gap:38px;
  padding:38px 0;border-top:1px solid var(--line);
}
.phase-k{
  font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
}
.phase h3{margin-top:12px;font-size:27px}
.phase p{margin-top:14px;color:var(--muted);font-size:15.5px;line-height:1.68}

/* ---------- faixa de CTA ---------- */
.cta{
  position:relative;overflow:hidden;
  border:1px solid rgba(123,92,255,.3);border-radius:26px;
  padding:64px 48px;text-align:center;
  background:
    radial-gradient(700px 320px at 50% -30%,rgba(123,92,255,.32),transparent 66%),
    radial-gradient(560px 280px at 88% 130%,rgba(255,176,32,.22),transparent 62%),
    var(--panel);
}
.cta h2{font-size:clamp(28px,3.8vw,44px)}
.cta .lead{margin:18px auto 0;text-align:center}
.cta .hero-ctas{justify-content:center;margin-top:32px}

/* ---------- formulário ---------- */
.form{display:grid;gap:16px}
.field label{
  display:block;font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim);margin-bottom:8px;
}
.field input,.field textarea,.field select{
  width:100%;padding:14px 16px;border-radius:12px;
  border:1px solid var(--line);background:rgba(255,255,255,.035);
  color:var(--text);font-family:var(--body);font-size:15.5px;
  transition:border-color .2s var(--ease),background .2s var(--ease);
}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:rgba(47,155,255,.65);background:rgba(47,155,255,.07);
}
.field textarea{min-height:130px;resize:vertical}
.form button{border:0;cursor:pointer;font-family:var(--body);justify-content:center}

/* ---------- blog ---------- */
.post{
  display:block;text-decoration:none;padding:28px;border:1px solid var(--line);
  border-radius:var(--r-lg);background:var(--panel);
  transition:transform .3s var(--ease),border-color .3s var(--ease);
}
.post:hover{transform:translateY(-6px);border-color:rgba(47,155,255,.42)}
.post h3{margin:12px 0 10px;font-size:20px}
.post p{color:var(--muted);font-size:14.5px}

/* ---------- rodapé ---------- */
footer{border-top:1px solid var(--line);background:#04060d;padding:74px 0 30px;margin-top:0}
.foot{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.3fr;gap:44px}
.foot img{height:40px;width:auto}
.foot p{color:var(--muted);font-size:14.5px;line-height:1.65;margin-top:14px;max-width:34ch}
.foot h4{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-weight:500;margin-bottom:16px}
.foot-col{display:flex;flex-direction:column;gap:11px}
.foot-col a,.foot-col span{color:#cdd5e3;font-size:14.5px;text-decoration:none;transition:color .2s var(--ease)}
.foot-col a:hover{color:var(--gold)}
.foot-social{display:flex;gap:16px;margin-top:20px}
.foot-social a{color:var(--blue);font-size:14px;text-decoration:none}
.foot-bottom{
  max-width:var(--wrap);margin:52px auto 0;padding:22px var(--pad) 0;
  border-top:1px solid rgba(255,255,255,.06);
  color:var(--dim);font-size:12.5px;text-align:center;
}

/* ---------- botão flutuante ---------- */
.float{
  position:fixed;right:22px;bottom:22px;z-index:110;
  display:inline-flex;align-items:center;gap:11px;
  padding:15px 22px 15px 18px;border-radius:999px;
  background:linear-gradient(135deg,var(--green),#0f9d58);
  color:#04200f;font-weight:800;font-size:15px;text-decoration:none;
  box-shadow:0 18px 44px rgba(15,157,88,.45);
  transition:transform .24s var(--ease),box-shadow .24s var(--ease),
             opacity .3s var(--ease),visibility .3s var(--ease);
  /* fica escondido no topo pra não cobrir o CTA do hero no celular */
  opacity:0;visibility:hidden;transform:translateY(14px);
}
.float.on{opacity:1;visibility:visible;transform:none}
.float:hover{transform:translateY(-3px);box-shadow:0 26px 58px rgba(15,157,88,.6)}
.float i{
  width:9px;height:9px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 0 rgba(255,255,255,.7);animation:pulse 2.2s infinite;
}
@keyframes pulse{
  70%{box-shadow:0 0 0 11px rgba(255,255,255,0)}
  100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}
}

/* ---------- animações de scroll ---------- */
[data-r]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-r].in{opacity:1;transform:none}
[data-r="left"]{transform:translateX(-30px)}
[data-r="right"]{transform:translateX(30px)}
[data-r="scale"]{transform:scale(.95)}
[data-r].in{transform:none}

.bar{
  height:2px;width:0;border-radius:2px;margin:26px 0 0;
  background:linear-gradient(90deg,var(--blue),var(--violet),var(--gold));
  transition:width 1.1s var(--ease);
}
.bar.in{width:100%}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  html{scroll-behavior:auto}
  [data-r]{opacity:1;transform:none}
}


/* nav em duas linhas no celular */
@media (max-width:860px){
  .nav-in{flex-wrap:wrap;gap:10px 14px;padding:12px var(--pad)}
  .nav-logo{order:1}
  .nav-cta{order:2;margin-left:auto;padding:9px 16px;font-size:13.5px}
  .nav-links{order:3;width:100%;margin-left:0;padding-bottom:2px;gap:4px;
             flex-wrap:wrap;overflow-x:visible}
  .nav-links a{padding:8px 12px;font-size:14px}
}

/* ---------- responsivo ---------- */
@media (max-width:1024px){
  .g4{grid-template-columns:repeat(2,1fr)}
  .g3c{grid-template-columns:repeat(2,1fr)}
  .foot{grid-template-columns:1fr 1fr;gap:36px}
  .svc-art{opacity:.35;right:-160px}
  .phase{grid-template-columns:170px 1fr;gap:26px}
}
@media (max-width:720px){
  :root{--pad:20px}
  .sec{padding:88px 0}
  .sec-tight{padding:64px 0}
  .hero{padding:76px 0 62px}
  .g2,.g3c,.g4{grid-template-columns:1fr}
  .grid-orbs{margin-top:80px;row-gap:70px}
  .foot{grid-template-columns:1fr}
  .cta{padding:44px 24px}
  .phase{grid-template-columns:1fr;gap:10px;padding:30px 0}
  .stack-item{position:static}
  .stack-item .card{grid-template-columns:1fr;gap:14px;padding:28px}
  .hero-stats{margin-top:52px}
  .float{right:14px;bottom:14px;padding:13px 18px 13px 15px;font-size:14px}
  .ghost{top:-34px;right:-4px}
  .nav-logo img{height:28px}
}
