/* Tório — Elemento 90 · campanha-site
   Tokens da marca (assets/brand/brand-tokens.md). Sora (display) + Manrope (texto). Nenhuma fonte condensada.
   Conteúdo visível por padrão: toda animação é realce e só existe em html.js sem .rm. */

/* Fontes auto-hospedadas (Sora 500–800, Manrope 400–700; latin + latin-ext). Nenhum pedido ao Google. */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('../assets/fonts/manrope-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('../assets/fonts/manrope-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 500 800; font-display: swap; src: url('../assets/fonts/sora-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 500 800; font-display: swap; src: url('../assets/fonts/sora-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }


:root {
  --ink: #07090A;
  --ink-2: #0B0E10;
  --ink-3: #11161A;
  --off: #EEF1ED;
  --muted: #A9B3AD;        /* 9,5:1 sobre ink */
  --meta: #8C9791;         /* 6,6:1 sobre ink — só texto pequeno de apoio */
  --green: #3EE08F;        /* só sobre escuro */
  --green-2: #1DB873;
  --green-deep: #0A7A45;   /* só sobre claro */
  --line: rgba(238, 241, 237, .12);
  --line-2: rgba(238, 241, 237, .2);
  --glass: rgba(238, 241, 237, .04);
  --f-d: "Sora", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-t: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --r-btn: 6px;
  --r-card: 16px;
  --ease: cubic-bezier(.2, .7, .1, 1);
  --ease-io: cubic-bezier(.7, 0, .2, 1);
  --nav-h: 64px;
  --gut: 16px;
}
@media (min-width: 768px) { :root { --gut: 32px; --nav-h: 72px; } }
@media (min-width: 1200px) { :root { --gut: 48px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; background: var(--ink); color-scheme: dark; scroll-padding-top: var(--nav-h); }
body {
  margin: 0; background: var(--ink); color: var(--off);
  font: 400 16px/1.55 var(--f-t); letter-spacing: .005em;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: clip; min-height: 100vh;
}
@media (min-width: 768px) { body { font-size: 17px; } }
img, svg, canvas { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, textarea { font: inherit; color: inherit; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
::selection { background: var(--green); color: var(--ink); }
:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; border-radius: 4px; }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: fixed; left: 12px; top: -80px; z-index: 200; padding: 10px 14px; background: var(--green); color: var(--ink); font-weight: 700; border-radius: var(--r-btn); text-decoration: none; transition: top .2s; }
.skip:focus { top: 12px; }
.wrap { width: min(1280px, 100% - 2 * var(--gut)); margin-inline: auto; }
.noscript { padding: 16px 0; color: var(--muted); }

/* grão soft-light (matéria, nunca chapado) */
.grain { position: absolute; inset: 0; background: url('../assets/grain.png') repeat; background-size: 160px; opacity: .9; pointer-events: none; } /* grão estático com alpha baixo, sem blend mode */

/* ---------- tipografia ---------- */
.eyebrow { display: inline-flex; align-items: center; gap: 10px; font: 600 12px/1.2 var(--f-d); letter-spacing: .16em; text-transform: uppercase; color: var(--green); }
.eyebrow__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(62, 224, 143, .14), 0 0 14px var(--green); }
.h2 { font: 700 clamp(2rem, 1.2rem + 3.6vw, 4.25rem)/1.02 var(--f-d); letter-spacing: -.025em; text-wrap: balance; }
.lead { color: var(--muted); font-size: clamp(1.02rem, .95rem + .35vw, 1.2rem); max-width: 60ch; text-wrap: pretty; }
.sec { position: relative; padding-block: clamp(88px, 11vw, 176px); }
.sec-head { display: grid; gap: 18px; max-width: 820px; margin-bottom: clamp(40px, 6vw, 80px); }

/* ---------- botões: gradiente + brilho interno + sheen ---------- */
.btn {
  --bh: 52px;
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: var(--bh); padding: 0 24px; border-radius: var(--r-btn); border: 0;
  font: 600 15px/1 var(--f-d); letter-spacing: .01em; text-decoration: none; cursor: pointer;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), background-color .3s;
  -webkit-tap-highlight-color: transparent;
}
.btn--sm { --bh: 42px; padding: 0 16px; font-size: 14px; }
.btn--lg { --bh: 58px; padding: 0 28px; font-size: 16px; }
.btn--primary {
  color: #04120B;
  background: linear-gradient(180deg, #6FF0AE 0%, var(--green) 45%, var(--green-2) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), inset 0 -1px 0 rgba(0, 0, 0, .18), 0 10px 30px -10px rgba(62, 224, 143, .55), 0 0 0 1px rgba(62, 224, 143, .4);
}
.btn--primary::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .7) 48%, transparent 62%);
  transform: translateX(-120%); transition: transform .8s var(--ease);
}
.btn--ghost {
  color: var(--off);
  background:
    linear-gradient(180deg, rgba(20, 26, 29, .85), rgba(9, 12, 13, .85)) padding-box,
    linear-gradient(180deg, rgba(238, 241, 237, .42), rgba(238, 241, 237, .08)) border-box;
  border: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}
.btn--ghost::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(110deg, transparent 30%, rgba(62, 224, 143, .22) 50%, transparent 66%);
  transform: translateX(-120%); transition: transform .8s var(--ease);
}
@media (hover: hover) {
  .btn:hover { transform: translateY(-2px); }
  .btn:hover::after { transform: translateX(120%); }
  .btn--primary:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), inset 0 -1px 0 rgba(0, 0, 0, .18), 0 16px 40px -12px rgba(62, 224, 143, .75), 0 0 0 1px rgba(62, 224, 143, .6); }
}
.btn:active { transform: translateY(0) scale(.98); }

/* ---------- selo Th = I.A. × Humano ---------- */
.seal { position: relative; width: 132px; aspect-ratio: 1; color: var(--off); }
.seal__ring-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.seal__svg { width: 100%; height: 100%; overflow: visible; }
.seal__ring { fill: none; stroke: rgba(238, 241, 237, .28); stroke-width: 1; }
.seal__ring--in { stroke: rgba(62, 224, 143, .5); fill: rgba(62, 224, 143, .06); }
.seal__txt { font: 600 13.4px var(--f-d); letter-spacing: .21em; fill: var(--off); }
.seal__th { font: 800 44px var(--f-d); fill: var(--off); letter-spacing: -.02em; }
.seal__f { font: 700 10px var(--f-d); letter-spacing: .14em; fill: var(--green); }
.js:not(.rm) .seal__ring-svg { animation: spin 28s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.seal--sm { width: 84px; }
.seal--foot { width: 112px; }

/* ---------- loader ---------- */
.loader { display: none; }
.js.is-loading .loader {
  display: block; position: fixed; inset: 0; z-index: 120; background: var(--ink);
  animation: loaderFailsafe .4s ease 2.6s forwards; /* se o JS falhar, some sozinho */
}
.js.is-loading .loader::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 50% at 50% 50%, rgba(62, 224, 143, .10), transparent 70%); }
.loader.is-out { opacity: 0; visibility: hidden; transition: opacity .7s var(--ease), visibility 0s .7s; }
@keyframes loaderFailsafe { to { opacity: 0; visibility: hidden; } }
.loader__canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.loader__ui { position: absolute; left: var(--gut); right: var(--gut); bottom: max(28px, env(safe-area-inset-bottom)); display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.loader__state { font: 500 14px/1.3 var(--f-d); letter-spacing: .06em; color: var(--muted); }
.loader__count { display: flex; flex-direction: column; align-items: flex-end; line-height: 1; }
.loader__label { font: 600 11px var(--f-d); letter-spacing: .2em; text-transform: uppercase; color: var(--green); margin-bottom: 6px; }
.loader__num { font: 800 clamp(64px, 14vw, 148px)/.85 var(--f-d); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.loader__skip { position: absolute; top: max(18px, env(safe-area-inset-top)); right: var(--gut); padding: 10px 14px; border-radius: 999px; border: 1px solid var(--line-2); background: rgba(7, 9, 10, .6); color: var(--off); font: 600 13px var(--f-d); cursor: pointer; }
.loader__skip:hover { border-color: var(--green); }

/* ---------- navegação ---------- */
.nav { position: fixed; inset: 0 0 auto; z-index: 90; height: var(--nav-h); transition: background-color .4s, box-shadow .4s, transform .5s var(--ease); }
.nav.is-scrolled { background: rgba(7, 9, 10, .92); box-shadow: 0 1px 0 var(--line); }
.nav.is-hidden { transform: translateY(-100%); }
.nav__in { height: 100%; display: flex; align-items: center; gap: 24px; }
.logo { display: inline-flex; align-items: center; height: 44px; text-decoration: none; }
.logo__svg { height: 20px; width: auto; }
@media (min-width: 768px) { .logo__svg { height: 22px; } }
.nav__links { display: none; margin-left: auto; gap: 4px; }
.nav__links a { position: relative; padding: 10px 12px; font: 500 14px var(--f-d); color: var(--muted); text-decoration: none; transition: color .25s; }
.nav__links a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 1px; background: var(--green); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.nav__links a:hover { color: var(--off); }
.nav__links a:hover::after { transform: scaleX(1); }
.nav__cta { display: none; }
.nav__menu { margin-left: auto; display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 4px 0 14px; border-radius: 999px; border: 1px solid var(--line-2); background: rgba(7, 9, 10, .55); cursor: pointer; font: 600 13px var(--f-d); }
.nav__burger { display: grid; gap: 5px; width: 34px; height: 34px; place-content: center; border-radius: 50%; background: var(--off); }
.nav__burger i { display: block; width: 14px; height: 1.6px; background: var(--ink); transition: transform .35s var(--ease); }
.nav__menu[aria-expanded="true"] .nav__burger i:first-child { transform: translateY(3.3px) rotate(45deg); }
.nav__menu[aria-expanded="true"] .nav__burger i:last-child { transform: translateY(-3.3px) rotate(-45deg); }
@media (min-width: 1024px) {
  .nav__links { display: flex; }
  .nav__cta { display: inline-flex; }
  .nav__menu { display: none; }
}
.menu { position: fixed; inset: var(--nav-h) 0 0; background: rgba(7, 9, 10, .97); padding: 24px var(--gut) 40px; display: flex; flex-direction: column; justify-content: space-between; overflow-y: auto; }
.menu[hidden] { display: none; }
.menu nav { display: grid; }
.menu a { display: flex; min-height: 56px; align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); font: 700 clamp(28px, 8vw, 44px)/1.1 var(--f-d); letter-spacing: -.02em; text-decoration: none; }
.menu a span { font: 600 12px var(--f-d); color: var(--green); letter-spacing: .12em; }
.menu__sig { color: var(--muted); font: 500 14px var(--f-d); margin-top: 32px; }

/* ---------- HERO (filme de abertura) ---------- */
.hero { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; isolation: isolate; padding-top: var(--nav-h); }
.hero__bg { position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 90% at 70% 40%, #0E1513 0%, var(--ink) 62%); }
.hero__light { position: absolute; border-radius: 50%; pointer-events: none; }
.hero__light--a { width: 110vmax; height: 80vmax; left: 30%; top: -30%; background: radial-gradient(closest-side, rgba(62, 224, 143, .16), rgba(62, 224, 143, .05) 55%, transparent); }
.hero__light--b { width: 90vmax; height: 70vmax; left: -40%; bottom: -45%; background: radial-gradient(closest-side, rgba(92, 130, 255, .12), rgba(92, 130, 255, .03) 60%, transparent); }
.hero__canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__vignette { position: absolute; inset: 0; background: radial-gradient(130% 100% at 50% 40%, transparent 55%, rgba(0, 0, 0, .65)), linear-gradient(to bottom, transparent 60%, var(--ink)); pointer-events: none; }
.hero__grid { position: relative; display: grid; grid-template-rows: auto auto; align-content: end; gap: 8px; padding-bottom: clamp(96px, 14vh, 140px); flex: 1; }
.hero__slot { position: relative; height: clamp(190px, 38svh, 330px); display: grid; place-items: center; }
.hero__static { width: min(78%, 340px); height: auto; opacity: .95; }
.js .hero.has-canvas .hero__static { opacity: 0; }
.hero__copy { position: relative; display: grid; gap: 20px; max-width: 760px; }
.hero__copy::before { content: ""; position: absolute; inset: -40px -24px -24px; z-index: -1; background: radial-gradient(90% 80% at 30% 60%, rgba(7, 9, 10, .75), transparent 75%); pointer-events: none; }
.hero__title { font: 800 clamp(2.2rem, .9rem + 5.9vw, 6.6rem)/.98 var(--f-d); letter-spacing: -.035em; text-wrap: balance; }
.hero__title .line { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.hero__title .line__in { display: block; }
.hero__title em { font-style: normal; background: linear-gradient(100deg, #9CF5C6 0%, var(--green) 40%, #22C67C 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero__sub { color: var(--muted); font-size: clamp(1.02rem, .95rem + .4vw, 1.25rem); max-width: 54ch; text-wrap: pretty; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.hero__seal { position: absolute; right: var(--gut); bottom: 22px; width: 84px; }
.hero__scroll { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); display: grid; justify-items: center; gap: 8px; font: 600 11px var(--f-d); letter-spacing: .2em; text-transform: uppercase; color: var(--muted); text-decoration: none; }
.hero__scroll i { width: 1px; height: 36px; background: linear-gradient(var(--green), transparent); transform-origin: top; }
.js-ready:not(.rm) .hero__scroll i { animation: drip 2.2s var(--ease-io) infinite; }
@keyframes drip { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }
@media (max-width: 767px) { .hero__scroll { display: none; } }
@media (min-width: 900px) {
  .hero { justify-content: center; }
  .hero__grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-template-rows: auto; align-items: center; padding-block: 40px 120px; }
  .hero__slot { order: 2; height: min(62vh, 560px); }
  .hero__copy { order: 1; }
  .hero__seal { top: auto; bottom: 44px; width: 132px; }
}
/* revelação do hero: só com JS e sem "reduzir movimento"; o estado final é o padrão */
.js-ready:not(.rm) .hero:not(.is-in) .line__in { transform: translateY(110%); }
.js-ready:not(.rm) .hero:not(.is-in) .hero__eyebrow,
.js-ready:not(.rm) .hero:not(.is-in) .hero__sub,
.js-ready:not(.rm) .hero:not(.is-in) .hero__ctas,
.js-ready:not(.rm) .hero:not(.is-in) .hero__seal { opacity: 0; transform: translateY(18px); }
.js-ready:not(.rm) .hero:not(.is-in) .line__in, .js-ready:not(.rm) .hero:not(.is-in) .hero__eyebrow, .js-ready:not(.rm) .hero:not(.is-in) .hero__sub, .js-ready:not(.rm) .hero:not(.is-in) .hero__ctas, .js-ready:not(.rm) .hero:not(.is-in) .hero__seal { animation: rvFailsafe 0s linear 3s forwards; }
.js-ready:not(.rm) .hero .line__in { transition: transform .6s var(--ease); }
.js-ready:not(.rm) .hero .line:nth-child(2) .line__in { transition-delay: .06s; }
.js-ready:not(.rm) .hero .hero__eyebrow, .js-ready:not(.rm) .hero .hero__sub, .js-ready:not(.rm) .hero .hero__ctas, .js-ready:not(.rm) .hero .hero__seal { transition: opacity .6s var(--ease), transform .6s var(--ease); }
.js-ready:not(.rm) .hero .hero__sub { transition-delay: .12s; }
.js-ready:not(.rm) .hero .hero__ctas { transition-delay: .18s; }
.js-ready:not(.rm) .hero .hero__seal { transition-delay: .24s; }

/* ---------- revelação por rolagem (visível por padrão) ---------- */
.js-ready:not(.rm):not(.io-ok) .rv { animation: rvFailsafe 0s linear 3s forwards; }
.js-ready:not(.rm) .rv { opacity: 0; transform: translateY(28px); transition: opacity .6s var(--ease) var(--d, 0s), transform .6s var(--ease) var(--d, 0s); }
.js-ready:not(.rm) .rv.is-in { opacity: 1; transform: none; }
@keyframes rvFailsafe { to { opacity: 1; transform: none; } }

/* ---------- MANIFESTO ---------- */
.manifesto { position: relative; background: linear-gradient(to bottom, var(--ink), #080B0C 50%, var(--ink)); }
.manifesto__stage { padding-block: clamp(80px, 10vw, 140px); }
.manifesto__list { display: grid; gap: clamp(28px, 5vw, 56px); margin-top: 28px; counter-reset: mf; }
.mf { display: grid; grid-template-columns: auto 1fr; gap: 14px 22px; align-items: baseline; }
.mf__n { font: 600 12px var(--f-d); letter-spacing: .14em; color: var(--green); min-width: 2ch; }
.mf__t { font: 700 clamp(1.7rem, 1rem + 3.4vw, 4.4rem)/1.08 var(--f-d); letter-spacing: -.03em; max-width: 20ch; text-wrap: balance; }
.mf--last .mf__t { background: linear-gradient(100deg, var(--off) 20%, var(--green) 80%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mf .w { transition: opacity .25s linear, color .25s; }
.manifesto__bar { display: none; }
/* modo pinado (só com GSAP) */
.manifesto.is-pinned .manifesto__stage { height: 100svh; display: flex; align-items: center; padding: 0; }
.manifesto.is-pinned .manifesto__stage > .wrap { position: relative; height: min(70svh, 560px); display: flex; flex-direction: column; }
.manifesto.is-pinned .manifesto__list { position: relative; flex: 1; margin-top: 24px; display: block; }
.manifesto.is-pinned .mf { position: absolute; inset: 0; align-content: center; grid-template-columns: 1fr; opacity: 0; visibility: hidden; }
.manifesto.is-pinned .mf__t { max-width: 18ch; font-size: clamp(2rem, 1rem + 4.6vw, 5.4rem); }
.manifesto.is-pinned .mf__n { font-size: 13px; }
.manifesto.is-pinned .manifesto__bar { display: block; height: 2px; background: var(--line); border-radius: 2px; overflow: hidden; }
.manifesto.is-pinned .manifesto__bar span { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--green-2), var(--green)); transform: scaleX(0); transform-origin: left; }

/* ---------- O COMPOSTO ---------- */
.composto::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 40% at 15% 30%, rgba(62, 224, 143, .07), transparent 70%), radial-gradient(50% 40% at 90% 60%, rgba(255, 196, 150, .05), transparent 70%); pointer-events: none; }
.fusion { --gap: 0px; --h: clamp(200px, 42vw, 420px); position: relative; height: var(--h); margin: 0 auto clamp(84px, 9vw, 130px); max-width: 980px; }
.fusion__half { position: absolute; top: 0; height: 100%; width: calc(var(--h) / 2); overflow: hidden; display: grid; align-items: center; }
.fusion__half--ia {
  right: calc(50% + var(--gap)); border-radius: 999px 0 0 999px; justify-items: end; padding-right: 14%;
  background:
    radial-gradient(circle at 80% 50%, rgba(62, 224, 143, .5), transparent 65%),
    radial-gradient(rgba(62, 224, 143, .75) 1px, transparent 1.6px) 0 0 / 11px 11px,
    linear-gradient(90deg, #04150C, #0B2A1B);
  box-shadow: inset 0 0 0 1px rgba(62, 224, 143, .35), -30px 0 80px -30px rgba(62, 224, 143, .45);
}
.fusion__half--hu {
  left: calc(50% + var(--gap)); border-radius: 0 999px 999px 0; justify-items: start; padding-left: 14%;
  background:
    radial-gradient(circle at 20% 50%, rgba(255, 214, 180, .55), transparent 65%),
    radial-gradient(120% 90% at 70% 30%, #3A2A22, #1A1210 70%);
  box-shadow: inset 0 0 0 1px rgba(255, 214, 180, .3), 30px 0 80px -30px rgba(255, 190, 150, .35);
}
.fusion__half .grain { opacity: .6; }
.fusion__tag { position: absolute; bottom: -40px; font: 700 clamp(11px, 1.3vw, 14px) var(--f-d); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.fusion__tag--ia { right: calc(50% + 12px); color: var(--green); }
.fusion__tag--hu { left: calc(50% + 12px); color: #FFD1AE; }
.fusion__code { position: absolute; inset: 0; padding: 12% 14% 12% 8%; font: 500 11px/1.9 ui-monospace, SFMono-Regular, Menlo, monospace; color: rgba(62, 224, 143, .35); word-spacing: 6px; overflow: hidden; }
.fusion__core { position: absolute; left: 50%; top: 50%; width: calc(var(--h) * .56); aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; display: grid; place-content: center; justify-items: center; text-align: center;
  background: radial-gradient(circle, rgba(7, 9, 10, .92) 55%, rgba(7, 9, 10, .55) 72%, transparent 73%);
  box-shadow: 0 0 0 1px rgba(238, 241, 237, .25), 0 0 60px rgba(62, 224, 143, .35); }
.fusion__num { font: 600 12px var(--f-d); letter-spacing: .14em; color: var(--green); }
.fusion__th { font: 800 clamp(40px, 7vw, 84px)/1 var(--f-d); letter-spacing: -.04em; }
.fusion__eq { font: 600 clamp(10px, 1.2vw, 13px) var(--f-d); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-top: 6px; }
.fusion__spark { position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; transform: translateX(-50%); background: linear-gradient(transparent, var(--green), transparent); box-shadow: 0 0 24px var(--green); opacity: .8; }
.composto__cols { display: grid; gap: 16px; align-items: stretch; }
.composto__x { display: grid; place-items: center; font: 300 40px/1 var(--f-d); color: var(--green); }
.col { position: relative; padding: clamp(24px, 3vw, 40px); border-radius: var(--r-card); border: 1px solid transparent;
  background: linear-gradient(180deg, rgba(20, 26, 28, .9), rgba(10, 13, 14, .9)) padding-box, linear-gradient(180deg, rgba(238, 241, 237, .28), rgba(238, 241, 237, .04)) border-box; }
.col--ia { background: linear-gradient(180deg, rgba(12, 32, 22, .9), rgba(9, 14, 12, .92)) padding-box, linear-gradient(180deg, rgba(62, 224, 143, .55), rgba(62, 224, 143, .05)) border-box; }
.col--hu { background: linear-gradient(180deg, rgba(34, 26, 22, .9), rgba(14, 12, 11, .92)) padding-box, linear-gradient(180deg, rgba(255, 214, 180, .45), rgba(255, 214, 180, .05)) border-box; }
.col__tag { font: 600 11px var(--f-d); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.col__t { font: 700 clamp(1.4rem, 1.1rem + 1.2vw, 2rem)/1.1 var(--f-d); letter-spacing: -.02em; margin: 10px 0 20px; }
.col__list { display: grid; gap: 0; }
.col__list li { position: relative; padding: 13px 0 13px 28px; border-top: 1px solid var(--line); color: #D6DBD7; }
.col__list li::before { content: ""; position: absolute; left: 2px; top: 21px; width: 8px; height: 8px; border-radius: 50%; }
.col--ia .col__list li::before { background: var(--green); box-shadow: 0 0 10px var(--green); }
.col--hu .col__list li::before { background: #FFD1AE; box-shadow: 0 0 10px rgba(255, 209, 174, .8); }
@media (min-width: 900px) { .composto__cols { grid-template-columns: 1fr auto 1fr; } }
.why { margin-top: clamp(56px, 8vw, 110px); display: grid; gap: 18px; max-width: 900px; }
.why__t { font: 700 clamp(1.6rem, 1rem + 2.6vw, 3.2rem)/1.08 var(--f-d); letter-spacing: -.025em; text-wrap: balance; }
.why__d { color: var(--muted); font-size: clamp(1.02rem, .95rem + .3vw, 1.18rem); max-width: 62ch; }
.why__close { display: inline-flex; align-self: start; justify-self: start; align-items: center; gap: 10px; margin-top: 8px; padding: 10px 16px; border-radius: 999px; border: 1px solid rgba(62, 224, 143, .45); background: rgba(62, 224, 143, .08); font: 600 14px var(--f-d); color: var(--off); }
.why__close::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 10px var(--green); }

/* ---------- O QUE FAZEMOS ---------- */
.fazemos { background: radial-gradient(70% 50% at 50% 0%, rgba(62, 224, 143, .06), transparent 70%); }
.pillars { display: grid; gap: 16px; }
@media (min-width: 900px) { .pillars { grid-template-columns: repeat(3, 1fr); } }
.pillar { position: relative; overflow: hidden; padding: clamp(26px, 3vw, 40px); border-radius: var(--r-card); border: 1px solid transparent;
  background: linear-gradient(180deg, rgba(19, 25, 27, .92), rgba(9, 12, 13, .96)) padding-box, linear-gradient(180deg, rgba(238, 241, 237, .3), rgba(238, 241, 237, .04) 60%) border-box;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.pillar::before { content: ""; position: absolute; width: 320px; height: 320px; right: -120px; top: -140px; background: radial-gradient(closest-side, rgba(62, 224, 143, .18), transparent); transition: opacity .5s; opacity: .6; pointer-events: none; }
@media (hover: hover) { .pillar:hover { transform: translateY(-4px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 30px 60px -30px rgba(62, 224, 143, .35); } .pillar:hover::before { opacity: 1; } }
.pillar__sym { position: relative; display: inline-grid; place-items: center; width: 72px; height: 72px; border-radius: 12px; border: 1px solid rgba(62, 224, 143, .45); background: rgba(62, 224, 143, .07); font: 800 26px var(--f-d); letter-spacing: -.02em; }
.pillar__sym span { position: absolute; top: 6px; left: 8px; font: 600 9px var(--f-d); letter-spacing: .1em; color: var(--green); }
.pillar__t { font: 700 clamp(1.5rem, 1.2rem + 1vw, 2rem)/1.1 var(--f-d); letter-spacing: -.02em; margin-top: 28px; }
.pillar__tag { color: var(--muted); margin-top: 10px; min-height: 3.1em; }
.pillar__list { margin-top: 22px; }
.pillar__list li { padding: 12px 0; border-top: 1px solid var(--line); font-weight: 500; display: flex; gap: 12px; }
.pillar__list li::before { content: "→"; color: var(--green); }

/* ---------- MARQUEE ---------- */
.marquee { position: relative; padding-block: 28px; border-block: 1px solid var(--line); overflow: hidden; background: linear-gradient(90deg, rgba(62, 224, 143, .05), transparent 30%, transparent 70%, rgba(62, 224, 143, .05)); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee__row { display: flex; width: max-content; }
.marquee__row + .marquee__row { margin-top: 10px; }
.marquee__track { display: flex; align-items: center; gap: 22px; padding-right: 22px; flex-shrink: 0; white-space: nowrap; font: 700 clamp(22px, 3.2vw, 44px)/1.2 var(--f-d); letter-spacing: -.02em; }
.marquee__row--rev .marquee__track { font-weight: 500; color: transparent; -webkit-text-stroke: 1px rgba(238, 241, 237, .35); }
.marquee__track .sep { font-size: .45em; color: var(--green); -webkit-text-stroke: 0; }
.js:not(.rm) .marquee__row { animation: marq 48s linear infinite; }
.js:not(.rm) .marquee__row--rev { animation-direction: reverse; animation-duration: 60s; }
@keyframes marq { to { transform: translateX(-50%); } }
@media (hover: hover) { .marquee:hover .marquee__row { animation-play-state: paused; } }

/* ---------- TABELA PERIÓDICA ---------- */
.tabela { background: radial-gradient(60% 40% at 80% 10%, rgba(62, 224, 143, .06), transparent 70%); }
.tabela::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: linear-gradient(rgba(238, 241, 237, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(238, 241, 237, .035) 1px, transparent 1px); background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(70% 60% at 50% 50%, #000, transparent); mask-image: radial-gradient(70% 60% at 50% 50%, #000, transparent); }
.tabela > .wrap { position: relative; z-index: 1; }
.tabela__head { display: grid; gap: 32px; align-items: end; margin-bottom: clamp(36px, 5vw, 64px); }
.tabela__head .sec-head { margin-bottom: 0; }
@media (min-width: 900px) { .tabela__head { grid-template-columns: 1fr auto; } }
.key { position: relative; justify-self: start; display: grid; width: clamp(128px, 34vw, 168px); aspect-ratio: 1 / 1.08; padding: 14px 16px; border-radius: 14px; margin: 0 58px 0 0; align-content: space-between;
  background: linear-gradient(160deg, rgba(62, 224, 143, .2), rgba(62, 224, 143, .02) 60%) padding-box, linear-gradient(180deg, rgba(62, 224, 143, .7), rgba(62, 224, 143, .1)) border-box; border: 1px solid transparent; }
.key__num { font: 600 13px var(--f-d); color: var(--green); }
.key__sym { font: 800 clamp(40px, 11vw, 56px)/1 var(--f-d); letter-spacing: -.04em; }
.key__name { font: 700 15px var(--f-d); }
.key__cat { font: 500 12px var(--f-t); color: var(--muted); }
.key__ann { position: absolute; left: calc(100% + 10px); font: 600 10px var(--f-d); letter-spacing: .12em; text-transform: uppercase; color: var(--meta); white-space: nowrap; }
.key__ann::before { content: ""; position: absolute; right: calc(100% + 4px); top: 50%; width: 18px; height: 1px; background: var(--line-2); }
.key__ann--n { top: 16px; } .key__ann--s { top: 48%; } .key__ann--m { bottom: 36px; }

.grid-el { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 600px) and (max-width: 899px) { .grid-el .el { aspect-ratio: 1.45 / 1; } }
@media (min-width: 900px) { .grid-el { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 12px; } }
.el-cell { min-width: 0; }
.el { --c: var(--green); --mx: 50%; --my: 30%; position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-rows: auto 1fr auto; aspect-ratio: 1 / 1.12; padding: 10px 10px 12px; border-radius: 12px; text-decoration: none; color: var(--off);
  background: linear-gradient(165deg, color-mix(in srgb, var(--c) 22%, #0B0E10), #0A0D0E 70%) padding-box, linear-gradient(180deg, color-mix(in srgb, var(--c) 70%, transparent), rgba(238, 241, 237, .06)) border-box;
  border: 1px solid transparent; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.el__glow { position: absolute; inset: 0; z-index: -1; background: radial-gradient(160px circle at var(--mx) var(--my), color-mix(in srgb, var(--c) 55%, transparent), transparent 70%); opacity: .35; transition: opacity .4s; }
.el__top { display: flex; justify-content: space-between; gap: 6px; align-items: baseline; }
.el__num { font: 600 11px var(--f-d); letter-spacing: .06em; color: var(--off); opacity: .85; }
.el__cat { display: block; font: 600 9.5px var(--f-d); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); text-align: right; line-height: 1.25; }
.el__sym { align-self: center; font: 800 clamp(40px, 12vw, 64px)/1 var(--f-d); letter-spacing: -.045em; text-shadow: 0 0 28px color-mix(in srgb, var(--c) 70%, transparent); }
.el__name { font: 700 14px/1.2 var(--f-d); letter-spacing: -.005em; }
.el__label { display: none; }
@media (min-width: 600px) { .el { padding: 14px 14px 16px; border-radius: 14px; } }
@media (min-width: 900px) { .el__sym { font-size: clamp(34px, 3.6vw, 56px); } .el__name { font-size: 13px; } }
@media (min-width: 1100px) {
  .el { aspect-ratio: 1 / 1.22; }
  .el__label { display: block; position: absolute; left: 14px; right: 14px; bottom: 14px; font: 500 12.5px/1.35 var(--f-t); color: var(--off); opacity: 0; transform: translateY(8px); transition: opacity .35s var(--ease), transform .35s var(--ease); }
  .el__name { transition: opacity .3s, transform .35s var(--ease); }
}
@media (hover: hover) {
  .el:hover { transform: translateY(-6px); box-shadow: 0 24px 50px -20px color-mix(in srgb, var(--c) 70%, transparent), 0 0 0 1px color-mix(in srgb, var(--c) 60%, transparent); }
  .el:hover .el__glow { opacity: 1; }
}
@media (hover: hover) and (min-width: 1100px) {
  .el:hover .el__label { opacity: 1; transform: none; }
  .el:hover .el__name { opacity: 0; transform: translateY(-6px); }
}
.el:focus-visible { outline-offset: 4px; }
.el:focus-visible .el__glow { opacity: 1; }
.el13 { margin-top: clamp(28px, 4vw, 48px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; }
.el--14 { background: radial-gradient(circle at 50% 45%, rgba(62, 224, 143, .16), transparent 70%); border: 1.5px dashed rgba(62, 224, 143, .6); }
.el--14 .el__sym { font-size: 40px; color: var(--green); text-shadow: 0 0 24px rgba(62, 224, 143, .6); }
.el13__t { font: 700 clamp(1.25rem, 1rem + 1.2vw, 2rem)/1.15 var(--f-d); letter-spacing: -.02em; }

/* ---------- ANÚNCIOS DOS CASES ---------- */
.ads { position: relative; padding-block: clamp(64px, 8vw, 120px) 0; }
.ads__head { margin-bottom: 32px; display: grid; gap: 14px; }
.ads__chrome { display: none; }
.ad { --c: var(--green); position: relative; isolation: isolate; overflow: hidden; padding: clamp(40px, 6vw, 88px) 0; border-top: 1px solid var(--line); }
.ad__bg { position: absolute; inset: 0; z-index: -1; background: radial-gradient(90% 70% at 85% 10%, color-mix(in srgb, var(--c) 26%, transparent), transparent 65%), radial-gradient(70% 60% at 0% 100%, color-mix(in srgb, var(--c) 14%, transparent), transparent 70%), linear-gradient(180deg, #0A0D0E, var(--ink)); }
.ad__light { position: absolute; width: 60vmax; height: 60vmax; right: -20vmax; top: -25vmax; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--c) 30%, transparent), transparent); opacity: .75; }
.ad__sym { position: absolute; right: -2vw; bottom: -6vw; font: 800 clamp(200px, 38vw, 560px)/.8 var(--f-d); letter-spacing: -.06em; color: transparent; -webkit-text-stroke: 1px color-mix(in srgb, var(--c) 45%, transparent); opacity: .5; user-select: none; }
.ad__grid { width: min(1320px, 100% - 2 * var(--gut)); margin-inline: auto; display: grid; gap: clamp(28px, 4vw, 64px); align-items: center; }
@media (min-width: 1024px) { .ad__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: start; } .ad__media { position: sticky; top: 96px; } }
/* molduras de dispositivo — captura inteira, sem cortar */
.ad__media { position: relative; padding: 0 12% 18% 0; }
.dev { position: relative; }
.dev img { width: 100%; height: auto; display: block; background: #111; }
.dev--desk { border-radius: 12px; overflow: hidden; background: #0E1113; box-shadow: 0 0 0 1px rgba(238, 241, 237, .16), 0 40px 90px -30px rgba(0, 0, 0, .9), 0 30px 80px -40px color-mix(in srgb, var(--c) 60%, transparent); }
.dev__bar { display: flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; background: linear-gradient(#1A1F22, #121618); border-bottom: 1px solid rgba(238, 241, 237, .08); }
.dev__bar i { width: 8px; height: 8px; border-radius: 50%; background: rgba(238, 241, 237, .22); }
.dev__bar span { margin-left: 10px; font: 500 11px var(--f-t); color: var(--meta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dev--mob { position: absolute; right: 0; bottom: 0; width: 27%; padding: 5px; border-radius: 24px; background: linear-gradient(160deg, #3A4145, #0C0F10 40%, #1C2124); box-shadow: 0 0 0 1px rgba(238, 241, 237, .18), 0 30px 60px -20px rgba(0, 0, 0, .9); }
.dev--mob img { border-radius: 19px; }
.dev--mob::before { content: ""; position: absolute; top: 9px; left: 50%; width: 26%; height: 5px; border-radius: 4px; transform: translateX(-50%); background: #050607; z-index: 1; }
.img-fail { display: grid; place-items: center; aspect-ratio: var(--ar, 16/10); padding: 16px; text-align: center; font: 500 13px var(--f-t); color: var(--muted); background: #111517; }
.ad__copy { position: relative; display: grid; gap: 18px; align-content: start; }
.ad__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font: 600 12px var(--f-d); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.ad__num { color: var(--off); }
.ad__symbol { display: inline-grid; place-items: center; min-width: 38px; height: 38px; padding: 0 6px; border-radius: 8px; font: 800 17px var(--f-d); letter-spacing: -.02em; text-transform: none; color: var(--off); border: 1px solid color-mix(in srgb, var(--c) 70%, transparent); background: color-mix(in srgb, var(--c) 18%, transparent); }
.ad__logo { justify-self: start; display: grid; place-items: center; height: 76px; width: min(100%, 260px); padding: 12px 18px; border-radius: 12px; }
.ad__logo img { max-width: 100%; max-height: 52px; width: auto; height: auto; object-fit: contain; }
.ad__logo--imagem img { max-height: 100%; }
.ad__logo--clara { background: linear-gradient(180deg, #F6F8F5, #E3E8E3); box-shadow: inset 0 1px 0 #fff, 0 10px 30px -14px rgba(0, 0, 0, .7); }
.ad__logo--escura { background: linear-gradient(180deg, rgba(24, 30, 33, .92), rgba(10, 13, 14, .92)) padding-box, linear-gradient(180deg, rgba(238, 241, 237, .28), rgba(238, 241, 237, .05)) border-box; border: 1px solid transparent; }
.ad__logo--teal { background: linear-gradient(180deg, #168A7F, #12746b 55%, #0E5F58); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 10px 30px -14px rgba(0, 0, 0, .7); }
.ad__logo--imagem { padding: 0; overflow: hidden; background: #0A0612; box-shadow: 0 0 0 1px rgba(238, 241, 237, .16); }
.ad__logo--imagem img { width: 100%; height: 100%; object-fit: contain; }
.ad__label { font: 600 13px var(--f-d); letter-spacing: .06em; color: var(--muted); text-transform: uppercase; }
.ad__headline { font: 800 clamp(2rem, 1.2rem + 3.2vw, 4rem)/1.02 var(--f-d); letter-spacing: -.035em; text-wrap: balance; margin-top: -6px; }
.ad__brief { display: grid; gap: 14px; }
.ad__brief div { display: grid; align-content: start; gap: 4px; padding-top: 14px; border-top: 1px solid var(--line); }
.ad__brief dt { font: 600 11px var(--f-d); letter-spacing: .16em; text-transform: uppercase; color: var(--green); }
.ad__brief dd { color: #D4DAD6; }
@media (min-width: 1280px) { .ad__brief { grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; } }
.ad__ia { display: grid; gap: 10px; padding: 16px 18px; border-radius: 12px; border: 1px solid rgba(62, 224, 143, .5); background: linear-gradient(180deg, rgba(62, 224, 143, .12), rgba(62, 224, 143, .03)); }
.ad__ia p { color: #DDE3DF; font-size: 15px; }
.ad__ia-badge { display: inline-flex; align-items: center; gap: 8px; font: 700 12px var(--f-d); letter-spacing: .14em; text-transform: uppercase; color: var(--green); }
.ad__ia-badge .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 10px var(--green); }
.js:not(.rm) .ad__ia-badge .dot { animation: pulse 1.8s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: .35; } }
.ad__block { display: grid; gap: 10px; }
.ad__kicker { font: 600 11px var(--f-d); letter-spacing: .16em; text-transform: uppercase; color: var(--meta); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chips li { padding: 6px 10px; border-radius: 999px; font: 600 12.5px var(--f-d); border: 1px solid var(--line-2); background: rgba(238, 241, 237, .05); }
.stamps { display: grid; gap: 10px; }
@media (min-width: 600px) { .stamps { grid-template-columns: 1fr 1fr; } }
.stamp { position: relative; display: grid; gap: 4px; padding: 12px 14px; border-radius: 10px; border: 1.5px solid color-mix(in srgb, var(--c) 65%, var(--off)); background: color-mix(in srgb, var(--c) 9%, rgba(7, 9, 10, .7)); outline: 1px dashed color-mix(in srgb, var(--c) 45%, transparent); outline-offset: -6px; transform: rotate(-.8deg); }
.stamp:nth-child(even) { transform: rotate(.7deg); }
.stamp__k { font: 800 11px var(--f-d); letter-spacing: .2em; text-transform: uppercase; color: var(--off); }
.stamp__v { font: 500 14px/1.4 var(--f-t); color: #DDE3DF; }
.ad__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 6px; }
.ad__foot .seal { margin-left: auto; }

/* modo campanha (com JS): anúncio em tela cheia */
.js-ready .ads { position: fixed; inset: 0; z-index: 110; padding: 0; overflow-y: auto; overscroll-behavior: contain; background: var(--ink); visibility: hidden; opacity: 0; transition: opacity .45s var(--ease), visibility 0s .45s; -webkit-overflow-scrolling: touch; }
.js-ready .ads.is-open { visibility: visible; opacity: 1; transition: opacity .45s var(--ease); }
.js-ready .ads__head { display: none; }
.js-ready .ads__chrome { display: flex; position: sticky; top: 0; z-index: 5; height: 64px; padding: 0 var(--gut); align-items: center; justify-content: space-between; background: rgba(7, 9, 10, .94); box-shadow: 0 1px 0 var(--line); }
.ads__count { font: 600 13px var(--f-d); letter-spacing: .1em; color: var(--muted); font-variant-numeric: tabular-nums; }
.ads__cur { color: var(--off); }
.ads__nav { display: flex; gap: 8px; }
.ads__btn { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; font: 600 17px var(--f-d); color: var(--off); border: 1px solid var(--line-2); background: rgba(12, 15, 17, .94); transition: border-color .25s, background-color .25s; }
.ads__btn:hover { border-color: var(--green); background: rgba(62, 224, 143, .12); }
.ads__close { background: var(--off); color: var(--ink); border-color: var(--off); }
.ads__close:hover { background: var(--green); color: var(--ink); }
.js-ready .ad { display: none; border-top: 0; min-height: calc(100svh - 64px); margin-top: -64px; padding-top: calc(64px + clamp(16px, 3vw, 40px)); padding-bottom: clamp(48px, 6vw, 80px); }
.js-ready .ad.is-active { display: block; }
.js-ready:not(.rm) .ad.is-active .dev--desk { animation: devIn .6s var(--ease) both; }
.js-ready:not(.rm) .ad.is-active .dev--mob { animation: mobIn .6s var(--ease) .08s both; }
.js-ready:not(.rm) .ad.is-active .ad__copy > * { animation: copyIn .5s var(--ease) both; }
.js-ready:not(.rm) .ad.is-active .ad__copy > *:nth-child(2) { animation-delay: .05s; }
.js-ready:not(.rm) .ad.is-active .ad__copy > *:nth-child(3) { animation-delay: .1s; }
.js-ready:not(.rm) .ad.is-active .ad__copy > *:nth-child(4) { animation-delay: .15s; }
.js-ready:not(.rm) .ad.is-active .ad__copy > *:nth-child(n+5) { animation-delay: .2s; }
.js-ready:not(.rm) .ad.is-active .stamp { animation: stampIn .4s cubic-bezier(.3, 1.6, .5, 1) both; }
.js-ready:not(.rm) .ad.is-active .stamp:nth-child(1) { animation-delay: .2s; }
.js-ready:not(.rm) .ad.is-active .stamp:nth-child(2) { animation-delay: .26s; }
.js-ready:not(.rm) .ad.is-active .stamp:nth-child(3) { animation-delay: .32s; }
.js-ready:not(.rm) .ad.is-active .stamp:nth-child(4) { animation-delay: .38s; }
@keyframes devIn { from { opacity: 0; transform: translateY(30px) scale(.97); clip-path: inset(0 0 100% 0 round 12px); } to { opacity: 1; transform: none; clip-path: inset(0 0 0 0 round 12px); } }
@keyframes mobIn { from { opacity: 0; transform: translateY(60px) rotate(4deg); } to { opacity: 1; transform: none; } }
@keyframes copyIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes stampIn { from { opacity: 0; transform: scale(1.35) rotate(-6deg); } }
html.modal-open, html.modal-open body { overflow: hidden; }

/* ---------- MÉTODO ---------- */
.steps { position: relative; display: grid; gap: 28px; }
.steps__line { position: absolute; left: 11px; top: 8px; bottom: 8px; width: 1px; background: var(--line); }
.steps__line span { position: absolute; inset: 0; background: linear-gradient(var(--green), var(--green-2)); transform-origin: top; transform: scaleY(1); box-shadow: 0 0 12px var(--green); }
.step { position: relative; padding-left: 48px; display: grid; gap: 8px; }
.step__n { font: 600 12px var(--f-d); letter-spacing: .14em; color: var(--green); }
.step__dot { position: absolute; left: 4px; top: 2px; width: 15px; height: 15px; border-radius: 50%; background: var(--ink); border: 2px solid var(--green); box-shadow: 0 0 0 5px rgba(62, 224, 143, .12), 0 0 16px rgba(62, 224, 143, .6); }
.step__t { font: 700 clamp(1.6rem, 1.2rem + 1.6vw, 2.5rem)/1.05 var(--f-d); letter-spacing: -.03em; }
.step__d { color: var(--muted); max-width: 36ch; }
@media (min-width: 900px) {
  .steps { grid-template-columns: repeat(4, 1fr); gap: 32px; padding-top: 36px; }
  .steps__line { left: 0; right: 0; top: 7px; bottom: auto; width: auto; height: 1px; }
  .steps__line span { transform-origin: left; }
  .step { padding-left: 0; padding-top: 16px; }
  .step__dot { left: 0; top: -36px; }
}

/* ---------- CONTATO ---------- */
.contato { overflow: hidden; }
.contato__bg { position: absolute; inset: 0; z-index: -1; background: radial-gradient(70% 60% at 20% 20%, rgba(62, 224, 143, .14), transparent 65%), radial-gradient(60% 60% at 100% 100%, rgba(92, 130, 255, .1), transparent 70%), linear-gradient(180deg, var(--ink), #0A0E0D); }
.contato { isolation: isolate; }
.contato__grid { display: grid; gap: clamp(36px, 5vw, 72px); align-items: start; }
@media (min-width: 1024px) { .contato__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); } }
.contato__head { display: grid; gap: 18px; }
.contato__t { font-size: clamp(2.2rem, 1.2rem + 4.4vw, 5rem); }
.contato__tile { margin-top: 12px; width: 150px; aspect-ratio: 1 / 1.12; padding: 14px; border-radius: 14px; display: grid; grid-template-rows: auto 1fr auto; border: 1.5px dashed rgba(62, 224, 143, .6); background: radial-gradient(circle at 50% 40%, rgba(62, 224, 143, .18), transparent 70%); }
.contato__tile .el__sym { font: 800 56px/1 var(--f-d); color: var(--green); align-self: center; text-shadow: 0 0 30px rgba(62, 224, 143, .6); }
.contato__tile .el__name { font: 700 14px var(--f-d); }
.form { display: grid; gap: 16px; padding: clamp(20px, 3vw, 40px); border-radius: 20px; border: 1px solid transparent;
  background: linear-gradient(180deg, rgba(20, 26, 28, .9), rgba(9, 12, 13, .94)) padding-box, linear-gradient(180deg, rgba(238, 241, 237, .3), rgba(238, 241, 237, .04)) border-box; box-shadow: 0 40px 90px -40px rgba(0, 0, 0, .8); }
@media (min-width: 700px) { .form { grid-template-columns: 1fr 1fr; } .field--full { grid-column: 1 / -1; } }
.field { display: grid; gap: 8px; }
.field label { font: 600 13px var(--f-d); letter-spacing: .02em; }
.field input, .field textarea { width: 100%; min-height: 50px; padding: 13px 14px; border-radius: var(--r-btn); border: 1px solid var(--line-2); background: rgba(7, 9, 10, .65); color: var(--off); font-size: 16px; transition: border-color .25s, box-shadow .25s; }
.field textarea { resize: vertical; min-height: 128px; }
.field input::placeholder, .field textarea::placeholder { color: #7F8A84; }
.field input:hover, .field textarea:hover { border-color: rgba(238, 241, 237, .35); }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(62, 224, 143, .22); }
.field.is-bad input, .field.is-bad textarea { border-color: #FF8A7A; }
.field__err { min-height: 0; font-size: 13.5px; color: #FFB4A8; }
.field__err:empty { display: none; }
.form__foot { display: grid; gap: 12px; }
.form__btn { justify-self: start; }
.form__btn-arrow { display: inline-block; width: 0; opacity: 0; transform: translateX(-6px); transition: width .3s var(--ease), opacity .3s, transform .3s var(--ease); }
@media (hover: hover) { .form__btn:hover .form__btn-arrow { width: 1em; opacity: 1; transform: none; } }
.form__btn[aria-disabled="true"] { opacity: .7; }
.form__privacy { font-size: 13.5px; color: var(--meta); max-width: 60ch; }
.form__privacy a { color: var(--off); font-weight: 600; text-underline-offset: 3px; }
.form__status { font: 600 15px/1.45 var(--f-d); color: var(--green); }
.form__status:empty { display: none; }
.form__status a { color: var(--green); }

/* ---------- RODAPÉ ---------- */
.foot { position: relative; padding: clamp(72px, 9vw, 140px) 0 32px; border-top: 1px solid var(--line); background: radial-gradient(80% 60% at 50% 0%, rgba(62, 224, 143, .08), transparent 70%), #060808; overflow: hidden; }
.foot__sig { font: 800 clamp(2.4rem, 1rem + 6.6vw, 8.2rem)/.95 var(--f-d); letter-spacing: -.045em; text-wrap: balance; }
.foot__sig span { display: inline-block; }
.foot__em { background: linear-gradient(100deg, #9CF5C6, var(--green) 50%, #22C67C); -webkit-background-clip: text; background-clip: text; color: transparent; }
.foot__row { display: grid; gap: 32px; margin-top: clamp(48px, 6vw, 88px); padding-top: 32px; border-top: 1px solid var(--line); align-items: start; }
@media (min-width: 900px) { .foot__row { grid-template-columns: 1.2fr 2fr auto; } }
.foot__brand p { color: var(--muted); margin-top: 14px; font-size: 15px; }
.foot__links { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.foot__links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0; font: 600 15px var(--f-d); color: var(--muted); text-decoration: none; }
.foot__links a:hover { color: var(--off); }
.foot__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: 40px; font-size: 13px; color: var(--meta); }


/* ---------- cenas sem biblioteca (IntersectionObserver + transição) ---------- */
.scenes-ok:not(.rm) .mf .w { opacity: .14; transition: opacity .3s linear calc(var(--i, 0) * 35ms); }
.scenes-ok:not(.rm) .mf.is-in .w { opacity: 1; }
.scenes-ok:not(.rm) .fusion .fusion__half, .scenes-ok:not(.rm) .fusion .fusion__core, .scenes-ok:not(.rm) .fusion .fusion__spark { transition: transform .6s var(--ease), opacity .6s var(--ease); }
.scenes-ok:not(.rm) .fusion:not(.is-in) .fusion__half--ia { transform: translateX(-38%) rotate(-6deg); opacity: .45; }
.scenes-ok:not(.rm) .fusion:not(.is-in) .fusion__half--hu { transform: translateX(38%) rotate(6deg); opacity: .45; }
.scenes-ok:not(.rm) .fusion:not(.is-in) .fusion__core { transform: translate(-50%, -50%) scale(.3); opacity: 0; }
.scenes-ok:not(.rm) .fusion:not(.is-in) .fusion__spark { transform: translateX(-50%) scaleY(0); opacity: 0; }
.scenes-ok:not(.rm) .fusion .fusion__core { transition-delay: .25s; }
.scenes-ok:not(.rm) .steps__line span { transition: transform .6s var(--ease) .1s; }
.scenes-ok:not(.rm) .steps:not(.is-in) .steps__line span { transform: scaleY(0); }
@media (min-width: 900px) { .scenes-ok:not(.rm) .steps:not(.is-in) .steps__line span { transform: scaleX(0); } }

/* animações infinitas pausam fora da tela (classe posta por IntersectionObserver) */
.is-paused, .is-paused * { animation-play-state: paused !important; }

/* ---------- reduzir movimento ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- WhatsApp (link wa.me; nenhuma API) ---------- */
.wa-ico { width: 20px; height: 20px; flex-shrink: 0; }
.btn--wa { color: var(--off); background: linear-gradient(180deg, rgba(20, 26, 29, .9), rgba(9, 12, 13, .9)) padding-box, linear-gradient(180deg, rgba(62, 224, 143, .7), rgba(62, 224, 143, .15)) border-box; border: 1px solid transparent; }
.btn--wa .wa-ico { color: var(--green); }
.btn--wa::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg, transparent 30%, rgba(62, 224, 143, .25) 50%, transparent 66%); transform: translateX(-120%); transition: transform .8s var(--ease); }
.contato__alt { display: grid; gap: 10px; justify-items: start; margin-top: 6px; }
.contato__alt-t { font-size: 14px; color: var(--muted); }
.contato__alt-t a { display: inline-flex; align-items: center; min-height: 44px; color: var(--off); font-weight: 600; text-underline-offset: 3px; }
.foot__wa { margin-top: 14px; }
.foot__wa a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 600 15px var(--f-d); color: var(--off); text-decoration: none; }
.foot__wa a:hover { color: var(--green); }
.foot__wa .wa-ico { color: var(--green); }
.wa-float { display: none; }
@media (max-width: 1023px) {
  .wa-float { display: grid; place-items: center; position: fixed; right: 12px; bottom: max(14px, env(safe-area-inset-bottom)); z-index: 80; width: 48px; height: 48px; border-radius: 50%; color: var(--ink);
    background: linear-gradient(180deg, #6FF0AE, var(--green) 50%, var(--green-2)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), 0 10px 26px -8px rgba(0, 0, 0, .8), 0 0 0 1px rgba(62, 224, 143, .5);
    opacity: 0; visibility: hidden; transform: translateY(12px) scale(.9); transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s .3s; }
  .wa-float .wa-ico { width: 24px; height: 24px; }
  .wa-float.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .3s var(--ease), transform .3s var(--ease); }
  html.modal-open .wa-float, html.is-loading .wa-float { display: none; }
  .no-js .wa-float { opacity: 1; visibility: visible; transform: none; }
}

/* ---------- tecnologia em grupos (anúncios) ---------- */
.techgrid { display: grid; gap: 10px; margin: 0; }
.tg { display: grid; gap: 6px; }
@media (min-width: 600px) { .tg { grid-template-columns: 9.5em minmax(0, 1fr); align-items: baseline; gap: 12px; } }
.tg dt { font: 600 11px/1.6 var(--f-d); letter-spacing: .14em; text-transform: uppercase; color: var(--green); }
.tg dd { margin: 0; }
.tg--fe dt { color: var(--meta); }
.tg--fe .chips li { font-weight: 500; font-size: 12px; color: var(--muted); border-color: var(--line); background: transparent; }

/* ---------- Tório Capital: menção discreta no rodapé (sem CTA; só fade) ---------- */
:root { --champ: #C9B68C; /* 10,0:1 sobre ink — só sobre escuro */ }
.cap { position: relative; isolation: isolate; display: grid; gap: 18px; margin-top: clamp(40px, 5vw, 64px); padding-top: 28px; }
.cap::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, rgba(201, 182, 140, .55), rgba(201, 182, 140, .12) 45%, transparent 85%); }
.cap::after { content: ""; position: absolute; z-index: -1; top: -40px; left: -60px; width: 420px; max-width: 90%; height: 200px; pointer-events: none; background: radial-gradient(closest-side, rgba(201, 182, 140, .07), transparent); }
.cap__t { margin: 0; line-height: 0; }
.cap__svg { display: block; height: 56px; width: auto; }
.cap__tx { display: grid; gap: 8px; max-width: 62ch; }
.cap__apoio { margin: 0; font: 600 15px/1.45 var(--f-d); color: var(--muted); }
.cap__legal { margin: 0; font-size: 13px; line-height: 1.55; color: var(--meta); }
@media (min-width: 900px) {
  .cap { grid-template-columns: auto 1fr; gap: 40px; align-items: center; }
  .cap__svg { height: 64px; }
  .cap__tx { padding-left: 40px; border-left: 1px solid var(--line); }
}
.js-ready:not(.rm) .rv--fade { transform: none; }
