.elementor-kit-8{--e-global-color-primary:#0F1010;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-color-0dfdc9c:#45DC61;--e-global-color-fe3ba22:#085FCE;--e-global-color-1ccc4fd:#000000;--e-global-typography-primary-font-family:"Rubik 80s Fade";--e-global-typography-primary-font-size:1.9em;--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Rubik";--e-global-typography-secondary-font-size:1.5em;--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Rubik";--e-global-typography-text-font-size:1.3em;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Rubik Dirt";--e-global-typography-accent-font-size:1em;--e-global-typography-accent-font-weight:300;color:#000000;}.elementor-kit-8 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */:root{
  /* Identidade */
  --logo-principal: #45DC61;

  /* Fundos base */
  --bg-alt: #00000;          /* base_background_alternativo */
  --bg-alt-2: #000000;        /* base_background_alter02 */

  /* Sistema */
  --primary: #0F1010;         /* Primário (UI) */
  --secondary: #54595F;       /* Secundário (UI) */
  --text: #7A7A7A;            /* Texto */
  --highlight: #61CE70;       /* Realce / ações */

  /* Derivados (sugestões) */
  --surface: #0F1010;         /* superfícies escuras */
  --surface-2: #121416;
  --muted: #9CA3AF;
  --border: rgba(255,255,255,.08);

  /* Gradiente marca (Hero/botão) */
  --grad-brand: linear-gradient(135deg, #085FCE 0%, #45DC61 55%, #61CE70 100%);

  /* Radius e sombra */
  --radius: 16px;
  --shadow: 0 8px 24px rgba(0,0,0,.25);
}

/* Botões */
.btn-primary .elementor-button{
  background: var(--grad-brand);
  color: #fff;
  border-radius: var(--radius);
  padding: 14px 22px;
  box-shadow: var(--shadow);
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.btn-primary .elementor-button:hover{ transform: translateY(-1px); }

.btn-outline .elementor-button{
  background: transparent;
  color: #45DC61;
  border: 2px solid #45DC61;
  border-radius: var(--radius);
  padding: 12px 20px;
}
.btn-outline .elementor-button:hover{ background: rgba(69,220,97,.08); }

/* Cards */
.card{
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 24px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:hover{ transform: translateY(-2px); }

/* Badges */
.badge{
  display:inline-block; font-size:.75rem; font-weight:600;
  padding:6px 10px; border-radius:999px;
  background: rgba(69,220,97,.14); color:#2eed28;
}

/* Microcopy */
.microcopy{ font-size:.9rem; color: var(--muted); margin-top:.5rem; }

/* Seções dark/alt */
.section--dark{ background: var(--primary); color:#E5E7EB; }
.section--brand{ background: var(--bg-alt); color:#EAF7FF; }
.section--black{ background: var(--bg-alt-2); color:#EAEAEA; }

/* Acessibilidade/motion reduzido */
@media (prefers-reduced-motion: reduce){
  *{ animation: none!important; transition: none!important; }
}
/* ====== Anti-scroll lateral (mobile e geral) ====== */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;           /* trava deslize lateral */
  overscroll-behavior-x: contain;
}

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

/* Imagens, SVGs, vídeos e Lotties não estouram o viewport */
img, svg, video, canvas, iframe {
  max-width: 100% !important;
  height: auto;
  display: block;
}

/* Elementor: previne transbordo de colunas/inner sections */
.elementor,
.elementor-location-body,
.elementor-section,
.elementor-container,
.elementor-row,
.elementor-column,
.elementor-widget-container {
  overflow-x: hidden;
}

/* Evita que elementos com translate/parallax criem overflow */
[class*="motion-effects"],
.elementor-sticky--effects {
  transform: translateZ(0);
  will-change: transform;
}

/* Grid/cards: se tiver gap grande + sombras, ainda segura */
.card,
.elementor-widget,
.elementor-column {
  max-width: 100%;
}

/* Nunca use 100vw em containers — substitui por 100% */
.fullwidth,
.section--full,
.elementor-section-stretched {
  width: 100% !important;       /* 100vw pode gerar overflow em mobile por causa da barra de rolagem */
}

/* Se usar carrossel/slider, corta qualquer pixel “fujão” */
.elementor-swiper,
.elementor-swiper .swiper,
.elementor-swiper .swiper-wrapper {
  overflow: hidden;
}
/* ===== Anti-scroll lateral (mobile + geral) ===== */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overscroll-behavior-x: contain;
}

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

/* Mídia nunca estoura o viewport */
img, svg, video, canvas, iframe {
  max-width: 100% !important;
  height: auto;
  display: block;
}

/* Elementor containers seguros */
.elementor,
.elementor-location-body,
.elementor-section,
.elementor-container,
.elementor-row,
.elementor-column,
.elementor-widget-container {
  overflow-x: hidden;
  max-width: 100%;
}

/* Evita overflow causado por parallax/translate */
[class*="motion-effects"],
.elementor-sticky--effects {
  transform: translateZ(0);
  will-change: transform;
}

/* Seções “stretched” sem 100vw (que causa vazamento em mobile) */
.elementor-section-stretched,
.section--full,
.fullwidth {
  width: 100% !important; /* nada de 100vw */
}

/* Carrosséis/Swipers domados */
.elementor-swiper,
.elementor-swiper .swiper,
.elementor-swiper .swiper-wrapper {
  overflow: hidden;
}

/* Correção para colunas com sombras/margens ousadas */
.elementor-column,
.card,
.elementor-widget {
  max-width: 100%;
}

/* iOS Safari – impede “elástico” lateral em body */
@supports (-webkit-overflow-scrolling: touch) {
  body { position: relative; left: 0; right: 0; }
}

/* Debug opcional (ligue se algo vazar):
html { outline: 0.5px solid rgba(255,0,0,.3); }
* { outline: 1px solid rgba(0,255,255,.08); }
*/
/* Base do efeito p/ a seção do Hero */
.hero-fx{
  position: relative;
  isolation: isolate;    /* evita conflito com o header fixo */
  overflow: hidden;      /* nada vazando pros lados */
}

/* (A) Gradient Drift — o degradê “respira” suavemente */
.hero-fx.gradient-drift{
  background: var(--grad-brand);
  background-size: 200% 200%;
  animation: gradShift 16s ease-in-out infinite alternate;
}
@keyframes gradShift{
  0%   { background-position: 0% 0%;     }
  100% { background-position: 100% 100%; }
}

/* (B) Orb Glow — blobs de luz bem sutis sobre o gradiente */
.hero-fx.orb-glow{ background: var(--grad-brand); }
.hero-fx.orb-glow::before,
.hero-fx.orb-glow::after{
  content:"";
  position:absolute; inset:-20%;
  background:
    radial-gradient(40% 35% at 20% 30%, rgba(255,255,255,.10), transparent 60%),
    radial-gradient(35% 30% at 80% 25%, rgba(255,255,255,.07), transparent 60%),
    radial-gradient(55% 45% at 50% 85%, rgba(0,0,0,.10), transparent 60%);
  filter: blur(18px);
  animation: orbs 22s ease-in-out infinite alternate;
  pointer-events:none; z-index:0;
}
.hero-fx.orb-glow::after{
  animation-duration: 28s;
  opacity:.7;
}
@keyframes orbs{
  0%   { transform: translate3d(0,0,0) scale(1); }
  100% { transform: translate3d(2%, -2%, 0) scale(1.04); }
}

/* (C) Grid Overlay — “tech grid” bem discreto por cima */
.hero-fx.grid-overlay{ background: var(--grad-brand); }
.hero-fx.grid-overlay::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  mix-blend-mode: overlay; opacity:.18;
  background-image:
    repeating-linear-gradient(0deg,  rgba(255,255,255,.06) 0 1px, transparent 1px 16px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.06) 0 1px, transparent 1px 16px);
  animation: gridPulse 14s ease-in-out infinite alternate;
}
@keyframes gridPulse{
  0%   { opacity:.12; }
  100% { opacity:.22; }
}

/* Motion respeitando acessibilidade */
@media (prefers-reduced-motion: reduce){
  .hero-fx.gradient-drift,
  .hero-fx.orb-glow::before,
  .hero-fx.orb-glow::after,
  .hero-fx.grid-overlay::after { animation: none !important; }
}
/* Reflexo suave deslizando pelo Hero */
.hero-fx::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background: linear-gradient(100deg,
      transparent 0%,
      rgba(255,255,255,.06) 45%,
      rgba(255,255,255,.12) 50%,
      rgba(255,255,255,.06) 55%,
      transparent 100%);
  transform: translateX(-120%);
  animation: sheen 8s ease-in-out infinite;
}
@keyframes sheen{
  0%, 30% { transform: translateX(-120%); }
  60%     { transform: translateX(120%); }
  100%    { transform: translateX(120%); }
}
.title-stroke{
  color: #EAEAEA;
  -webkit-text-stroke: 1px rgba(0,0,0,.35); /* contorno discreto */
  text-shadow:
    0 1px 0 rgba(0,0,0,.25),
    0 6px 18px rgba(8,95,206,.20); /* leve profundidade */
}
/* Versão “hover chroma” (opcional): adiciona aberração cromática sutil */
.title-stroke:hover{
  text-shadow:
    0 1px 0 rgba(0,0,0,.25),
    1px 0 rgba(8,95,206,.35),   /* azul */
    -1px 0 rgba(69,220,97,.35); /* verde */
  transition: text-shadow .2s ease;
}
.hero-fx{ position:relative; isolation:isolate; overflow:hidden; }
.hero-fx.dark-drift{
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(255,255,255,.06), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.04), transparent 40%),
    linear-gradient(135deg, #0B1220 0%, #111827 60%, #0F1115 100%);
  background-size: 160% 160%;
  animation: heroDrift 18s ease-in-out infinite alternate;
}
@keyframes heroDrift{
  0%{ background-position: 0% 0%; }
  100%{ background-position: 100% 100%; }
}
.hero-fx.nebula-glow{
  background: radial-gradient(60% 50% at 20% 30%, rgba(61,226,172,.10), transparent 60%),
              radial-gradient(50% 45% at 80% 25%, rgba(56,132,255,.12), transparent 65%),
              radial-gradient(80% 70% at 50% 90%, rgba(0,0,0,.35), transparent 70%),
              #0B0F15;
  filter: saturate(1.1);
}
.hero-fx.nebula-glow::before{
  content:""; position:absolute; inset:-15%;
  background: radial-gradient(45% 40% at 65% 20%, rgba(255,255,255,.06), transparent 60%);
  filter: blur(18px);
  animation: nebulaMove 24s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes nebulaMove{
  0%{ transform: translate3d(-2%, 1%, 0) scale(1); }
  100%{ transform: translate3d(2%, -1%, 0) scale(1.03); }
}
.hero-fx.tech-grid{
  background: linear-gradient(135deg, #0B1220 0%, #0F131C 60%, #0A0D14 100%);
}
.hero-fx.tech-grid::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  opacity:.18; mix-blend-mode:overlay;
  background-image:
    repeating-linear-gradient(0deg,  rgba(255,255,255,.06) 0 1px, transparent 1px 18px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.06) 0 1px, transparent 1px 18px);
  animation: gridBreath 16s ease-in-out infinite alternate;
}
@keyframes gridBreath{ 0%{opacity:.12;} 100%{opacity:.22;} }
.hero-fx.starfield{ background: radial-gradient(40% 40% at 50% 10%, #0F141C, #090C12 70%, #07090D 100%); }
.hero-fx.starfield::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1; opacity:.22;
  background-image:
    radial-gradient(1px 1px at 10% 20%, rgba(255,255,255,.5), transparent),
    radial-gradient(1px 1px at 30% 80%, rgba(255,255,255,.45), transparent),
    radial-gradient(1px 1px at 70% 30%, rgba(255,255,255,.4), transparent),
    radial-gradient(1px 1px at 85% 60%, rgba(255,255,255,.35), transparent),
    radial-gradient(1px 1px at 55% 50%, rgba(255,255,255,.5), transparent);
  animation: starDrift 26s linear infinite;
}
@keyframes starDrift{ 0%{transform: translateX(0);} 100%{transform: translateX(-2%);} }
@media (prefers-reduced-motion: reduce){
  .hero-fx::before, .hero-fx::after, .hero-fx{ animation:none!important; }
}
.sub-ink{
  background: linear-gradient(135deg, var(--brand, #3B82F6), var(--brand-2, #22D3EE), #6EE7B7);
  background-size: 220% 220%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: subInkMove 18s ease-in-out infinite alternate;
  letter-spacing: .2px;
}
@keyframes subInkMove{
  0%{ background-position: 0% 0%; }
  100%{ background-position: 100% 100%; }
}
@media (prefers-reduced-motion: reduce){ .sub-ink{ animation:none; } }
.title-ink--bitnest{
  animation: titleInkDrift 10s ease-in-out infinite alternate,
             titleGlow 4.8s ease-in-out infinite;
  text-shadow: 0 0 0 transparent; /* garante nitidez */
}
@keyframes titleGlow{
  0%,100%{ filter: drop-shadow(0 0 0 rgba(0,0,0,0)); }
  50%    { filter: drop-shadow(0 6px 18px rgba(85,130,244,.18)); }
}
.title-ink--bitnest:hover{ animation-duration: 8s, 4s; }

/* VARIAÇÃO bonita nas cores que você curte */
:root{
  --t1:#2eed28; /* verde */
  --t2:#0dd806; /* verde esc */
}

/* mascara revela o texto com um "wipe" e mantém gradiente vivo */
.first-visit .title-entrance--mask .elementor-heading-title,
.first-visit .title-entrance--mask.elementor-heading-title{
  display:inline-block;
  background: linear-gradient(135deg, var(--t1) 0%, var(--t2) 100%);
  background-size:220% 220%;
  -webkit-background-clip:text; background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;

  /* máscara que varre da esquerda p/ direita */
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 15%, #000 85%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 15%, #000 85%, transparent 100%);
  -webkit-mask-size:300% 100%; mask-size:300% 100%;
  -webkit-mask-position:0% 0; mask-position:0% 0;

  animation: titleMaskSweep 1.1s cubic-bezier(.2,.8,.2,1) both,
             titleInkDrift 12s ease-in-out 250ms infinite alternate;
  letter-spacing:.2px;
}

@keyframes titleMaskSweep { to { -webkit-mask-position:100% 0; mask-position:100% 0; } }
@keyframes titleInkDrift   { 0%{background-position:0 0} 100%{background-position:100% 100%} }

@media (prefers-reduced-motion: reduce){
  .first-visit .title-entrance--mask .elementor-heading-title{ animation:none; }
}
/* ===== Tokens (usa seus HEX) ===== */
:root{
  --c-blue:  #9E9E9E;  /* base_background_alternativo */
  --c-green: #7D7D7D;  /* logo_principal */
  --c-lime:  #696969;  /* realce */
  --c-dark:  #545454;  /* primário UI */
}

/* ===== CTA principal (gradiente + pulse hover) ===== */
.btn-cta .elementor-button{
  --grad: linear-gradient(135deg, var(--c-blue) 0%, var(--c-green) 55%, var(--c-lime) 100%);
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  gap: .5rem;
  padding: 14px 22px;
  border: 0; border-radius: 16px;
  color: #fff;
  background: var(--grad);
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  will-change: transform, box-shadow, filter;
}
.btn-cta .elementor-button:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 36px rgba(8,95,206,.28), 0 6px 18px rgba(69,220,97,.22);
}
/* Anel pulsante no hover */
.btn-cta .elementor-button::after{
  content:""; position:absolute; inset:-3px; border-radius: 18px;
  background: linear-gradient(135deg, rgba(8,95,206,.0), rgba(97,206,112,.0));
  opacity: 0; pointer-events: none;
}
.btn-cta .elementor-button:hover::after{
  animation: ctaPulse 1.6s ease-out infinite;
}
@keyframes ctaPulse{
  0%   { opacity: .0; box-shadow: 0 0 0 0 rgba(8,95,206,.0); }
  40%  { opacity: .9; box-shadow: 0 0 0 6px rgba(8,95,206,.20), 0 0 0 12px rgba(69,220,97,.12); }
  100% { opacity: 0; box-shadow: 0 0 0 18px rgba(8,95,206,0); }
}

/* Focus visível (acessibilidade) */
.btn-cta .elementor-button:focus-visible{
  outline: 2px solid #fff; outline-offset: 2px;
  box-shadow: 0 0 0 3px rgba(8,95,206,.55), 0 0 0 6px rgba(69,220,97,.4);
}

/* ===== CTA secundário (outline com borda em gradiente) ===== */
.btn-ghost .elementor-button{
  position: relative;
  padding: 12px 20px;
  color: #fff;
  background: transparent;
  border-radius: 16px;
  z-index: 0;
}
.btn-ghost .elementor-button::before{
  content:""; position:absolute; inset:0; border-radius:16px; z-index:-1;
  padding: 2px; background: linear-gradient(135deg, var(--c-blue), var(--c-green), var(--c-lime));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.btn-ghost .elementor-button:hover{
  color:#fff; 
  box-shadow: 0 10px 28px rgba(0,0,0,.25);
  transform: translateY(-1px);
}

/* ===== Versões compactas (opcional) ===== */
@media (max-width: 480px){
  .btn-cta .elementor-button,
  .btn-ghost .elementor-button{ width: 100%; }
}

/* Respeito a preferência do usuário */
@media (prefers-reduced-motion: reduce){
  .btn-cta .elementor-button,
  .btn-ghost .elementor-button{ transition:none!important; }
  .btn-cta .elementor-button::after{ animation:none!important; }
}
/* ===== Ícone do botão animando no hover (Elementor Button) ===== */
/* Aplica em qualquer botão com ícone, inclusive nos nossos .btn-cta e .btn-ghost */

.btn-cta .elementor-button .elementor-button-icon,
.btn-ghost .elementor-button .elementor-button-icon{
  transition: transform .22s ease, opacity .22s ease;
  opacity: .88;
  will-change: transform, opacity;
}

/* Ícone à direita (Icon Position: After) → desliza para a direita */
.btn-cta .elementor-button:hover .elementor-button-icon,
.btn-ghost .elementor-button:hover .elementor-button-icon{
  transform: translateX(4px);
  opacity: 1;
}

/* Se usar ícone à esquerda (Icon Position: Before), troque o slide: */
.btn-cta.icon-left .elementor-button:hover .elementor-button-icon,
.btn-ghost.icon-left .elementor-button:hover .elementor-button-icon{
  transform: translateX(-4px);
}

/* Animaçãozinha no texto para dar liga com o ícone (opcional e sutil) */
.btn-cta .elementor-button:hover .elementor-button-text,
.btn-ghost .elementor-button:hover .elementor-button-text{
  transform: translateX(1px);
  transition: transform .22s ease;
}

/* Clique/active: pequeno “tap” */
.btn-cta .elementor-button:active,
.btn-ghost .elementor-button:active{
  transform: translateY(0) scale(.99);
}

/* Acessibilidade: reduz animações se o usuário preferir */
@media (prefers-reduced-motion: reduce){
  .btn-cta .elementor-button .elementor-button-icon,
  .btn-ghost .elementor-button .elementor-button-icon,
  .btn-cta .elementor-button .elementor-button-text,
  .btn-ghost .elementor-button .elementor-button-text{
    transition: none !important;
    transform: none !important;
  }
}
.microcopy-float--wave span{
  display:inline-block;
  transform: translateY(0);
  animation: mcWave 3.2s ease-in-out infinite;
  will-change: transform;
}
@keyframes mcWave{
  0%,100%{ transform: translateY(0); }
  50%    { transform: translateY(-3px); }
}
/* defasagem para criar a ondinha */
.microcopy-float--wave span:nth-child(3n){   animation-delay: .08s; }
.microcopy-float--wave span:nth-child(3n+1){ animation-delay: .16s; }
.microcopy-float--wave span:nth-child(3n+2){ animation-delay: .24s; }

@media (prefers-reduced-motion: reduce){
  .microcopy-float--wave span{ animation: none !important; }
}
/* Faixa de cotações abaixo do header */
.crypto-tape {
  background: rgba(255,255,255,.04);     /* ajuste p/ seu tema */
  border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(6px);
}
.crypto-tape .elementor-widget-container { padding: 8px 0; }

/* Mantém tudo sem overflow lateral */
.crypto-tape, .tv-ticker-wrap { overflow: hidden; }

/* Opcional: deixar “sticky” se o header não for */
@media (min-width: 768px){
  .crypto-tape { position: sticky; top: 64px; z-index: 9; } /* ajuste top ao seu header */

/* Força o gradiente no título mesmo no front/public */
#titulo-grad .elementor-heading-title,
#titulo-grad.elementor-heading-title{
  --c1:#2eed28; --c2:#404740;
  display:inline-block;
  background: linear-gradient(135deg, var(--c1) 0%, var(--c2) 100%);
  background-size: 220% 220%;
  -webkit-background-clip:text; background-clip:text;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important; /* Safari/WebKit */
  animation: titleDrift 12s ease-in-out infinite alternate;
  letter-spacing:.2px;
}
@keyframes titleDrift{ 0%{background-position:0 0} 100%{background-position:100% 100%} }/* End custom CSS */