/* ══════════════════════════════════════════════════════════════════
   ORVES — design system ORIGINAL ink-electric (02–03-jul-2026),
   reaplicado fielmente ao conteúdo atual por decisão de BP (22-jul):
   "quero as cores antigas... design antigo". Fonte da verdade visual:
   CSS das páginas G1/G2 da Macro (orves_platform/platform/pricing).
   Home/site = DARK. Tema light (body[data-base="light"]) reservado ao
   produto (dashboard = light default com opção dark).
   Logo: docs/brand/APERTURE_SYSTEM.md (A-Preserve).
   ══════════════════════════════════════════════════════════════════ */

/* ── Tokens (paleta original exata) ─────────────────────────────── */
:root{
  --ink:#0B0E14;--ink2:#10141D;--panel:#121722;--panel2:#161C29;
  --line:#212A3B;--line2:#2C374C;
  --fg:#E8ECF4;--fg2:#AEB7C7;--fg3:#727E93;
  --acc:#22C07E;--acc2:#4FD69B;--hold:#E0A94E;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --sans:'Inter',system-ui,sans-serif;
  --disp:'Space Grotesk',sans-serif;
  /* aliases usados pelos templates atuais */
  --bg:var(--ink);--bg2:var(--panel);--acc-bright:var(--acc2);
  --brand:#22C07E;--brand2:#4FD69B;
  --code-bg:var(--ink2);--code-line:var(--line);--code-fg:#C7CAD1;
  --code-dim:#7E828A;--code-acc:var(--acc2);--code-hold:var(--hold);
  --r:9px;--r2:14px;
}
/* tema de PRODUTO (dashboard): light default com opção dark */
:root[data-base="light"]{
  --ink:#FFFFFF;--ink2:#F5F7FA;--panel:#FFFFFF;--panel2:#F6F8FB;
  --line:#E6E9EE;--line2:#D8DDE4;--fg:#0C0F16;--fg2:#42505E;--fg3:#67707E;
  --acc:#0B8152;--acc2:#0A8A58;--hold:#966807;
}

/* ── Base / tipografia (original) ───────────────────────────────── */
*{box-sizing:border-box;margin:0}
body{background:var(--ink);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--disp);font-weight:600;letter-spacing:-.025em;line-height:1.06}
h1{font-size:56px}h2{font-size:34px;margin:10px 0 12px}h3{font-size:22px}h4{font-size:17px}
@media(max-width:900px){h1{font-size:40px}h2{font-size:28px}}
a{color:inherit;text-decoration:none}
p a,li a{color:var(--acc2)}p a:hover,li a:hover{text-decoration:underline}
.mono{font-family:var(--mono)}
.lead{color:var(--fg2);max-width:60ch;font-size:17px}
.center{text-align:center}.center .lead{margin-left:auto;margin-right:auto}
.page{position:relative;z-index:1}
.grid-bg{position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 78% 48% at 50% 0%,#000,transparent 72%);mask-image:radial-gradient(ellipse 78% 48% at 50% 0%,#000,transparent 72%);opacity:.5}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}
section{padding:72px 0;position:relative;border-top:1px solid var(--line)}
section.tight{padding:48px 0}
section.ruled{border-top:1px solid var(--line)}
.hero+section, .flush{border-top:0}

/* eyebrows & pills (originais) */
.eye{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
.eyepill{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--acc2);border:1px solid color-mix(in srgb,var(--acc) 30%,transparent);background:color-mix(in srgb,var(--acc) 7%,transparent);padding:6px 13px;border-radius:100px}
.eyepill .d{width:6px;height:6px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 20%,transparent)}

/* botões (originais) */
.btn{background:var(--acc);color:#04140d;font-weight:600;font-size:14px;padding:11px 18px;border-radius:9px;display:inline-block;transition:transform .15s}
.btn:hover{transform:translateY(-1px)}
.btn.gh{background:transparent;color:var(--fg);border:1px solid var(--line2)}
.cta{display:flex;gap:12px;flex-wrap:wrap}

/* ── Nav (original) ─────────────────────────────────────────────── */
nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--ink) 80%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.navin{display:flex;align-items:center;gap:30px;height:64px}
.brand{display:flex;align-items:center;gap:10px}.brand svg{display:block}
.word{font-family:var(--disp);font-weight:700;font-size:20px;letter-spacing:-.02em}
.nlinks{display:flex;gap:24px;margin-left:6px}
.nlinks a{font-size:14px;color:var(--fg2)}.nlinks a:hover{color:var(--fg)}.nlinks a.on{color:var(--fg)}
@media(max-width:960px){.nlinks{display:none}}
.sp{flex:1}.si{font-size:14px;color:var(--fg2)}.si:hover{color:var(--fg)}
.ndd{position:relative;display:inline-block}
.ndd .caret{font-size:9px;color:var(--fg3);margin-left:2px}
.ndd .nmenu{position:absolute;top:100%;left:-16px;padding-top:12px;display:none;min-width:250px;z-index:60}
.ndd:hover .nmenu,.ndd:focus-within .nmenu{display:block}
.nmenu .in{display:block;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.nmenu .in a{display:block;padding:9px 12px;border-radius:8px;font-size:13.5px;color:var(--fg)}
.nmenu .in a em{display:block;font-style:normal;font-size:11.5px;color:var(--fg3);margin-top:2px}
.nmenu .in a:hover{background:color-mix(in srgb,var(--fg) 6%,transparent)}

/* ── Hero (original) ────────────────────────────────────────────── */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;padding:78px 0 44px;border-top:0}
@media(max-width:900px){.hero{grid-template-columns:1fr}}
.hero h1{margin:16px 0 20px}
.accent-tx{color:var(--acc)}
.hero .sub{font-size:18px;color:var(--fg2);max-width:52ch;margin-bottom:28px}
.hero.solo{grid-template-columns:1fr;text-align:center}
.hero.solo .sub{margin-left:auto;margin-right:auto}
.hero.solo .cta{justify-content:center}
.feats{display:flex;gap:20px;flex-wrap:wrap;margin-top:26px;font-size:13px;color:var(--fg2)}
.feats b{color:var(--fg);font-weight:600}

/* ── Cards & grids (originais: painéis com glow no hover) ───────── */
.g2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;text-align:left}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;text-align:left}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;text-align:left}
@media(max-width:900px){.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.g3,.g2,.g4{grid-template-columns:1fr}}
.card{border:1px solid var(--line2);border-radius:14px;background:var(--panel);padding:22px}
.card h4{font-size:17px;margin-bottom:6px}.card p{font-size:13.5px;color:var(--fg2)}
.card .k{font-family:var(--mono);font-size:11px;color:var(--acc2);margin-top:12px;display:block}
a.card{display:block;transition:border-color .2s,transform .2s}
a.card:hover{border-color:color-mix(in srgb,var(--acc) 45%,transparent);transform:translateY(-2px)}
.pnum{font-family:var(--mono);font-size:11px;color:var(--fg3);display:block;margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{font-family:var(--mono);font-size:11px;color:var(--fg2);border:1px solid var(--line);border-radius:6px;padding:5px 9px}
.chip.bad{color:var(--hold);border-color:color-mix(in srgb,var(--hold) 45%,transparent);background:color-mix(in srgb,var(--hold) 8%,transparent)}

/* ── Status badges (sistema de honestidade, no idioma antigo) ───── */
.st{font-family:var(--mono);font-size:10.5px;letter-spacing:.03em;border-radius:5px;padding:3px 8px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;color:var(--fg2);border:1px solid var(--line2)}
.st .d{width:6px;height:6px;border-radius:50%;background:var(--fg3);flex:none}
.st.live{color:var(--acc2);border-color:color-mix(in srgb,var(--acc) 40%,transparent)}.st.live .d{background:var(--acc)}
.st.int .d{background:var(--fg2)}
.st.pend{color:var(--fg3);border-style:dashed}.st.pend .d{background:var(--fg3)}
.st.unk{color:var(--hold);border-color:color-mix(in srgb,var(--hold) 45%,transparent);background:color-mix(in srgb,var(--hold) 8%,transparent)}.st.unk .d{background:var(--hold)}
.st.draft{color:var(--hold);border-style:dashed;border-color:color-mix(in srgb,var(--hold) 45%,transparent)}.st.draft .d{background:var(--hold)}
.st.soon{color:var(--fg3);border-style:dashed}.st.soon .d{display:none}

/* ── Tabelas (estilo pmx original: painel com header panel2) ────── */
.tblwrap{overflow-x:auto;margin-top:26px;border:1px solid var(--line2);border-radius:14px;background:var(--panel)}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px;text-align:left}
.tbl th{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg3);text-align:left;padding:12px 18px;border-bottom:1px solid var(--line2);background:var(--panel2);white-space:nowrap}
.tbl td{padding:11px 18px;border-bottom:1px solid var(--line);color:var(--fg2);text-align:left;vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl td b{color:var(--fg);font-family:var(--disp);font-weight:600}
.tbl td .u{font-family:var(--mono);font-size:12px;color:var(--fg2)}
.tbl td .cr{font-family:var(--mono);font-size:13px;color:var(--acc2)}

/* ── Código (ink2, como o card unkc original) ───────────────────── */
.code{border:1px solid var(--line2);border-radius:14px;background:var(--ink2);overflow:hidden;text-align:left}
.codehd{padding:10px 16px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;color:var(--fg3)}
.code pre{margin:0;padding:18px 20px;font-family:var(--mono);font-size:12.5px;line-height:1.75;color:var(--code-fg);white-space:pre-wrap;word-break:break-word}
.code .k{color:var(--acc2)}.code .s{color:var(--fg)}.code .r{color:var(--hold)}.code .g{color:var(--acc)}.code .cm{color:var(--fg3)}

/* ── Pipeline (estilo stack/box/sl/binst original) ──────────────── */
.pipe{max-width:640px;margin:34px auto 0}
.pnode{border:1px solid var(--line2);border-radius:14px;background:var(--panel);padding:16px 20px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;transition:border-color .2s,transform .2s}
.pnode b{font-family:var(--disp);font-size:16px;min-width:150px}
.pnode span{font-family:var(--mono);font-size:12px;color:var(--fg2)}
.pnode.src,.pnode.app{border-style:dashed;background:transparent}
.pnode.src b,.pnode.app b{color:var(--fg2)}
.pnode.hot{border-color:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 32%,transparent) inset}
.pnode.hot b{color:var(--acc2)}
a.pnode:hover{border-color:color-mix(in srgb,var(--acc) 45%,transparent);transform:translateY(-2px)}
.parr{display:flex;flex-direction:column;align-items:center;color:var(--fg3);padding:8px 0}
.parr .v{width:1px;height:14px;background:var(--line2)}
.parr .t{font-family:var(--mono);font-size:11px;margin:3px 0}
.pnode .cert{font-family:var(--mono);font-size:10.5px;color:var(--acc2);margin-left:auto;white-space:nowrap;opacity:.85}
/* the FORK — bifurcação pós-Canonical (peça central do posicionamento V2) */
.fork{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch;margin:2px 0}
@media(max-width:760px){.fork{grid-template-columns:1fr}.forx{padding:4px 0}}
.fcol{border:1px solid var(--line2);border-radius:14px;background:var(--panel);padding:18px 20px;text-align:left;display:flex;flex-direction:column;gap:8px}
.fcol.byo{border-style:dashed;background:transparent}
.fcol.orves{border-color:color-mix(in srgb,var(--acc) 45%,transparent);transition:border-color .2s,transform .2s}
a.fcol.orves:hover{border-color:var(--acc);transform:translateY(-2px)}
.fcol.orves.hot{border-color:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 32%,transparent) inset}
.fhead{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg3)}
.fcol.orves .fhead{color:var(--acc)}
.fbig{font-family:var(--disp);font-size:22px;font-weight:600;color:var(--fg)}
.fbody{font-family:var(--mono);font-size:12px;color:var(--fg2);line-height:1.7}
.fnote{font-family:var(--mono);font-size:10.5px;color:var(--fg3);margin-top:auto;padding-top:6px}
.fcol.orves .fnote{color:var(--acc2)}
.forx{display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;color:var(--fg3);text-transform:uppercase;letter-spacing:.1em}
.obsloop{display:flex;align-items:center;justify-content:center;gap:11px;flex-wrap:wrap;width:fit-content;max-width:92%;margin:18px auto 0;border:1px dashed var(--acc);border-radius:100px;background:color-mix(in srgb,var(--acc) 7%,transparent);padding:11px 22px;font-family:var(--mono);font-size:12px;color:var(--acc2)}
.obsloop b{color:var(--fg);font-family:var(--disp);font-size:14.5px}
a.obsloop:hover{border-color:var(--acc2)}

/* ── Escada de composição ───────────────────────────────────────── */
.lad{max-width:720px;margin:34px auto 0;border:1px solid var(--line2);border-radius:14px;background:var(--panel);padding:8px 22px}
.lrow{display:grid;grid-template-columns:1fr 34px 1fr;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.lrow:last-child{border-bottom:0}
.lcombo{font-family:var(--mono);font-size:12.5px;color:var(--fg2);text-align:right}
.lcombo b{color:var(--fg)}
.lrow .ar{color:var(--fg3);text-align:center}
.lout{font-family:var(--disp);font-size:16px;color:var(--fg)}
.lrow.top .lout{color:var(--acc2)}
@media(max-width:700px){.lrow{grid-template-columns:1fr;gap:4px}.lcombo{text-align:left}.lrow .ar{display:none}}

/* ── Stats ──────────────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:28px}
@media(max-width:820px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{border:1px solid var(--line2);border-radius:14px;background:var(--panel);padding:18px 20px;text-align:left}
.stat .v{font-family:var(--disp);font-size:30px;font-weight:600;color:var(--fg);display:block}
.stat .l{font-family:var(--mono);font-size:11px;color:var(--fg3);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;display:block}

/* ── Timeline ───────────────────────────────────────────────────── */
.tline{margin-top:30px;border-left:1px solid var(--line2);padding-left:26px;display:flex;flex-direction:column;gap:22px;text-align:left}
.tev{position:relative}
.tev::before{content:"";position:absolute;left:-31px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 20%,transparent)}
.tev.dim::before{background:var(--fg3);box-shadow:none}
.tev .tt{font-family:var(--mono);font-size:11px;color:var(--fg3);text-transform:uppercase;letter-spacing:.06em}
.tev .th{font-family:var(--disp);font-size:16px;margin:2px 0}
.tev p{font-size:13.5px;color:var(--fg2)}

/* ── Painel UNKNOWN (original) ──────────────────────────────────── */
.unk{border:1px solid var(--line2);border-radius:16px;background:var(--panel);overflow:hidden;display:grid;grid-template-columns:1fr 1fr}
@media(max-width:820px){.unk{grid-template-columns:1fr}}
.unkq{padding:26px;border-right:1px solid var(--line)}
@media(max-width:820px){.unkq{border-right:0;border-bottom:1px solid var(--line)}}
.unkq .claim{font-family:var(--disp);font-size:19px;margin:8px 0 12px}
.unkq .why{font-size:14px;color:var(--fg2)}.unkq .why b{color:var(--fg)}
.unkc{padding:26px;font-family:var(--mono);font-size:12.5px;line-height:1.7;background:var(--ink2)}
.unkc .k{color:var(--acc2)}.unkc .s{color:var(--fg)}.unkc .r{color:var(--hold)}.unkc .g{color:var(--acc)}.unkc .cm{color:var(--fg3)}

/* ── Bandas (estilo ftband original) ────────────────────────────── */
.band{display:flex;gap:32px;align-items:center;flex-wrap:wrap;border:1px solid var(--line2);border-radius:16px;background:var(--panel);padding:26px 28px;text-align:left}
.bandpills{display:flex;flex-wrap:wrap;gap:9px;flex:1;min-width:280px;justify-content:flex-end}
.bp{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--fg2);border:1px solid var(--line2);border-radius:8px;padding:7px 12px;background:color-mix(in srgb,var(--panel2) 60%,transparent)}
.bp.hot{color:var(--acc2);border-color:color-mix(in srgb,var(--acc) 40%,transparent);background:color-mix(in srgb,var(--acc) 9%,transparent)}

/* ── Pricing (estilo plans original) ────────────────────────────── */
.packs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
@media(max-width:900px){.packs{grid-template-columns:1fr}}
.pack{border:1px solid var(--line2);border-radius:16px;background:var(--panel);padding:26px;text-align:left}
.pack.hot{border-color:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 32%,transparent) inset}
.price{font-family:var(--disp);font-size:34px;font-weight:600;margin:10px 0 2px}
.per{font-family:var(--mono);font-size:11.5px;color:var(--fg3)}
.pack ul{margin:16px 0 0;padding:0;list-style:none}
.pack li{font-size:13.5px;color:var(--fg2);padding:5px 0;border-bottom:1px solid var(--line)}
.pack li:last-child{border-bottom:0}.pack li b{color:var(--fg)}
.notice{border:1px dashed var(--line2);border-radius:12px;background:var(--panel);padding:13px 18px;margin-top:24px;font-size:13px;color:var(--fg2);text-align:center}
.notice b{color:var(--fg)}

/* ── FAQ (original) ─────────────────────────────────────────────── */
details{border-bottom:1px solid var(--line);padding:16px 0}
summary{font-size:16px;font-weight:500;cursor:pointer;list-style:none;display:flex;justify-content:space-between;font-family:var(--disp)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--acc)}
details[open] summary::after{content:"\2013"}
details p{margin:10px 0 0;color:var(--fg2);font-size:14.5px;max-width:60ch}

/* ── Footer (original) ──────────────────────────────────────────── */
footer{border-top:1px solid var(--line);padding:44px 0;color:var(--fg3)}
.fcols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px}
.fcol .h{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg3);margin-bottom:8px}
.fcol a{display:block;color:var(--fg2);font-size:14px;padding:4px 0}
.fcol a:hover{color:var(--fg)}

/* ── Ilustração viva (home 2.3/2.4) — peça CENTRAL, quase cinematográfica */
.flowart{position:relative;left:50%;transform:translateX(-50%);width:min(1280px,96vw);border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--panel) 55%,transparent);padding:22px 14px}
.flowart svg{display:block;width:100%;height:auto}
html.js .flowart.rv{transform:translateX(-50%) translateY(14px)}
html.js .flowart.rv.in{transform:translateX(-50%) translateY(0)}
.flowart .fnode{fill:var(--panel);stroke:var(--line2)}
.flowart .fnode.main{stroke:var(--acc)}
.flowart .flbl{font-family:var(--mono);font-size:12px;fill:var(--fg2)}
.flowart .flbl.b{font-family:var(--disp);font-size:15px;font-weight:600;fill:var(--fg)}
.flowart .flbl.dim{fill:var(--fg3);font-size:10.5px}
.flowart .flbl.acc{fill:var(--acc2)}
.flowart .fpath{fill:none;stroke:var(--line2);stroke-width:1}
.flowart .fpath.dash{stroke-dasharray:3 6}
.flowart .fdot{fill:var(--acc2);animation:travel 9s linear infinite;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--acc2) 70%,transparent))}
@keyframes travel{0%{offset-distance:0%;opacity:0}6%{opacity:1}92%{opacity:1}100%{offset-distance:100%;opacity:0}}
.flowart .pulse{animation:corepulse 4.5s ease-in-out infinite;transform-origin:505px 168px}
@keyframes corepulse{0%,100%{opacity:.6;stroke-width:1}50%{opacity:1;stroke-width:2.2}}
.flowart .corehalo{fill:none;stroke:var(--acc);opacity:0;transform-box:fill-box;transform-origin:center;animation:halo 4.5s ease-out infinite}
@keyframes halo{0%{opacity:.35;transform:scale(1)}70%{opacity:0;transform:scale(1.12)}100%{opacity:0}}
/* a CAMADA canonical — plano de borda a borda, não card */
.flowart .llayer-fill{fill:color-mix(in srgb,var(--acc) 5%,transparent)}
.flowart .llayer-line{stroke:var(--acc);stroke-width:1.4;opacity:.8}
.flowart .pulse-line{animation:layerpulse 4.5s ease-in-out infinite}
@keyframes layerpulse{0%,100%{opacity:.45;stroke-width:1}50%{opacity:1;stroke-width:2}}
.flowart .llayer-word{font-family:var(--disp);font-size:30px;font-weight:700;letter-spacing:.18em;fill:var(--fg)}
.flowart .fpath.obs{stroke:color-mix(in srgb,var(--acc) 40%,var(--line2));opacity:.8}
/* internal words (hero visual - subtle) */
.flowart .bword{font-family:var(--mono);font-size:10px;fill:var(--fg3);opacity:.55}
/* fontes em cascata (uma vez, ao entrar) */
html.js .flowart .schip{opacity:0;animation:srcin .5s ease forwards}
@keyframes srcin{to{opacity:1}}
@media(prefers-reduced-motion:reduce){html.js .flowart .schip{opacity:1;animation:none}}
/* spotlight: "Watch the flow" acende o diagrama in-page */
.flowart.lit{border-color:var(--acc);box-shadow:0 0 80px -24px color-mix(in srgb,var(--acc) 55%,transparent);transition:border-color .4s,box-shadow .4s}
@media(prefers-reduced-motion:reduce){.flowart .pulse-line{animation:none}}
@media(prefers-reduced-motion:reduce){.flowart .fdot{animation:none;opacity:0}.flowart .pulse{animation:none}}

/* ── Vídeo hero (home 2.2 → agora na página Platform) ───────────── */
.videowrap{max-width:1020px;margin:0 auto;border:1px solid var(--line2);border-radius:16px;overflow:hidden;background:var(--ink2);box-shadow:0 40px 120px -40px rgba(0,0,0,.8)}
.videowrap .vr{position:relative;width:100%;aspect-ratio:16/10}
.videowrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.videocap{font-family:var(--mono);font-size:11.5px;color:var(--fg3);margin-top:12px}

/* ── CANONICAL como camada (home 2.1) ───────────────────────────── */
.canonhero{min-height:78vh;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:96px 0}
.canonhero .big{font-family:var(--disp);font-weight:700;font-size:clamp(64px,11vw,150px);letter-spacing:-.03em;line-height:.95;color:var(--fg);margin:18px 0 8px}
.canonhero .big em{font-style:normal;color:var(--acc)}
.canonhero .def{font-family:var(--mono);font-size:13px;color:var(--fg3);margin-bottom:22px}
.canonprops{display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:center;font-family:var(--mono);font-size:12.5px;color:var(--fg2);margin-top:26px}
.canonprops span::before{content:"·";color:var(--acc);margin-right:8px}
/* a LINHA — information / intelligence */
.divide{position:relative;margin:64px 0;text-align:center}
.divide .lbl{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg3)}
.divide .lbl.top{margin-bottom:14px}.divide .lbl.bot{margin-top:14px;color:var(--acc2)}
.divide hr{border:0;border-top:1px solid var(--acc);opacity:.7;box-shadow:0 0 18px color-mix(in srgb,var(--acc) 35%,transparent);margin:0}
/* knowledge ecosystem map */
.kmap{max-width:760px;margin:36px auto 0;text-align:center}
.kmap .core{font-family:var(--disp);font-size:clamp(44px,7vw,84px);font-weight:700;letter-spacing:-.03em;color:var(--fg)}
.kmap .orbit{display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:center;margin-top:20px;font-family:var(--mono);font-size:13px;color:var(--fg2)}
.kmap .orbit span{opacity:.85}
.kmap .orbit b{color:var(--acc2);font-weight:500}
/* índice tipográfico de produtos (substitui grade de cards) */
.prodindex{max-width:860px;margin:36px auto 0;text-align:left}
.prow{display:grid;grid-template-columns:150px 1fr auto;gap:18px;align-items:baseline;padding:16px 4px;border-bottom:1px solid var(--line)}
.prow:last-child{border-bottom:0}
.prow .pn{font-family:var(--disp);font-size:20px;font-weight:600}
.prow .pd{font-size:14px;color:var(--fg2)}
.prow .pl{font-family:var(--mono);font-size:12px;color:var(--acc2);white-space:nowrap}
.prow:hover .pn{color:var(--acc2)}
.pgroup{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg3);padding:18px 4px 4px}
@media(max-width:700px){.prow{grid-template-columns:1fr;gap:4px}}
/* tese — prosa, sem cards */
.thesis{max-width:660px;margin:0 auto;text-align:left}
.thesis p{font-size:16.5px;color:var(--fg2);line-height:1.75;margin-top:18px}
.thesis p b{color:var(--fg)}
.thesis .pull{font-family:var(--disp);font-size:24px;line-height:1.3;color:var(--fg);border-left:2px solid var(--acc);padding-left:20px;margin-top:28px}

/* ── Motion (discreta; progressive enhancement) ─────────────────── */
html.js .rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
html.js .rv.in{opacity:1;transform:none}
@media print{html.js .rv{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html.js .rv{opacity:1;transform:none;transition:none}.btn:hover{transform:none}}

/* ═══ HOMEPAGE DEFINITIVA — capítulos de produto + motifs ═══ */
.pchap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:64px 0;border-top:1px solid var(--line)}
.pchap:first-of-type{border-top:0}
.pchap .pq{font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc2)}
.pchap h3{font-family:'Space Grotesk',sans-serif;font-size:30px;letter-spacing:-.02em;margin:18px 0 12px}
.pchap p.d{font-size:15px;color:var(--fg2);max-width:46ch;line-height:1.65}
.pchap .standalone{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--fg3);border:1px solid var(--line);border-radius:999px;padding:5px 12px}
.pchap .standalone .dt{width:6px;height:6px;border-radius:50%;background:var(--acc)}
.pmotif{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;overflow:hidden}
.pmotif svg{display:block;width:100%;height:auto}
@media(max-width:900px){.pchap{grid-template-columns:1fr;gap:28px}.pchap .pmotif{order:-1}}
.pchap.flip .pmotif{order:-1}
@media(max-width:900px){.pchap.flip .pmotif{order:-1}}

/* motif primitives */
.m-l{stroke:var(--fg3);stroke-width:2;stroke-linecap:round;opacity:.55}
.m-l.acc{stroke:var(--acc);opacity:.9}
.m-box{fill:color-mix(in srgb,var(--panel2,#0F131C) 80%,transparent);stroke:var(--line);rx:8}
.m-t{font-family:'JetBrains Mono',monospace;font-size:10px;fill:var(--fg3)}
.m-t.acc{fill:var(--acc2)}

/* Parser: caos → grade */
@keyframes mChaos{0%,38%{opacity:.55}52%,86%{opacity:0}100%{opacity:.55}}
@keyframes mGrid{0%,38%{opacity:0}52%,86%{opacity:.95}100%{opacity:0}}
@keyframes mScan{0%{transform:translateX(0)}50%{transform:translateX(210px)}100%{transform:translateX(0)}}
html.js .mo-parser .chaos line{animation:mChaos 9s ease-in-out infinite}
html.js .mo-parser .grid line{animation:mGrid 9s ease-in-out infinite}
html.js .mo-parser .scan{animation:mScan 9s ease-in-out infinite}

/* Canonical: camadas empilham + versão */
@keyframes mStack{0%{opacity:0;transform:translateY(14px)}18%,82%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(14px)}}
html.js .mo-canon .lyr{animation:mStack 8s ease-in-out infinite}
html.js .mo-canon .lyr:nth-child(2){animation-delay:.5s}
html.js .mo-canon .lyr:nth-child(3){animation-delay:1s}
html.js .mo-canon .lyr:nth-child(4){animation-delay:1.5s}

/* Knowledge: graph that grows and persists */
@keyframes mNode{0%{opacity:0;r:0}12%,90%{opacity:1}100%{opacity:1}}
@keyframes mEdge{0%{stroke-dashoffset:80}18%,100%{stroke-dashoffset:0}}
html.js .mo-know circle.n{animation:mNode 12s ease-out infinite}
html.js .mo-know path.e{stroke-dasharray:80;animation:mEdge 12s ease-out infinite}

/* Observatory: varredura + delta admitido */
@keyframes mSweep{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
@keyframes mRing{0%{r:8;opacity:.7}100%{r:74;opacity:0}}
@keyframes mDelta{0%,55%{opacity:0;transform:translateX(26px)}70%,92%{opacity:1;transform:translateX(0)}100%{opacity:0}}
html.js .mo-obs .sweep{transform-box:fill-box;transform-origin:center;animation:mSweep 7s linear infinite}
html.js .mo-obs .ring{animation:mRing 3.5s ease-out infinite}
html.js .mo-obs .delta{animation:mDelta 7s ease-in-out infinite}

/* 4º pilar */
.pillars{max-width:560px;margin:30px auto 0;display:flex;flex-direction:column;gap:10px}
.pillar{border:1px solid var(--line);border-radius:12px;padding:13px 18px;display:flex;justify-content:space-between;align-items:center;font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--fg2);background:color-mix(in srgb,var(--panel) 60%,transparent)}
.pillar .who{font-size:11px;color:var(--fg3)}
.pillar.hot{border-color:color-mix(in srgb,var(--acc) 45%,transparent);color:var(--fg);box-shadow:0 0 32px color-mix(in srgb,var(--acc) 10%,transparent)}
.pillar.hot .who{color:var(--acc2)}

/* escada do problema */
.truths{max-width:760px;margin:34px auto 0;display:flex;flex-direction:column;gap:0}
.truth{display:grid;grid-template-columns:52px 1fr;gap:20px;padding:22px 0;border-top:1px solid var(--line)}
.truth:first-child{border-top:0}
.truth .no{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--fg3);padding-top:4px}
.truth h4{font-size:18px;margin:0 0 6px;letter-spacing:-.01em}
.truth p{font-size:14px;color:var(--fg2);max-width:56ch}

@media(prefers-reduced-motion:reduce){
  html.js .mo-parser .chaos line,html.js .mo-parser .grid line,html.js .mo-parser .scan,
  html.js .mo-canon .lyr,html.js .mo-know circle.n,html.js .mo-know path.e,
  html.js .mo-obs .sweep,html.js .mo-obs .ring,html.js .mo-obs .delta{animation:none}
  html.js .mo-parser .grid line{opacity:.95}html.js .mo-parser .chaos line{opacity:0}
}

/* ═══ HOME v2 — distinções, anatomia, drill-down de evidência ═══ */
.dists{display:flex;flex-direction:column;gap:0;max-width:560px;margin:30px auto 0;font-family:'JetBrains Mono',monospace;font-size:13.5px}
.dists .d1{display:flex;justify-content:space-between;gap:16px;padding:11px 4px;border-top:1px solid var(--line);color:var(--fg2)}
.dists .d1:first-child{border-top:0}
.dists .d1 b{color:var(--fg);font-weight:500}
.dists .d1 .no{color:var(--hold)}
.vchain{display:flex;flex-direction:column;align-items:center;gap:7px;margin:30px auto 0}
.vchain .chip{min-width:260px;text-align:center;padding:8px 14px;font-size:12.5px}
.vchain .ar{color:var(--fg3);font-size:12px;line-height:1}
.anat{max-width:640px;margin:30px auto 0;border:1px solid color-mix(in srgb,var(--acc) 30%,transparent);border-radius:16px;background:var(--panel);padding:22px;text-align:left}
.anat .hd{display:flex;justify-content:space-between;align-items:center;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--fg3);margin-bottom:14px}
.anat .hd b{color:var(--fg);font-weight:500}

/* ═══ HOME v2.1 — inevitabilidade, transformação, glow de verificação ═══ */
.manif{font-family:'Space Grotesk',sans-serif;font-size:32px;letter-spacing:-.02em;line-height:1.15;color:var(--fg);max-width:24ch;margin:6px auto 0}
.manif .nv{color:var(--acc2)}
.inevl{max-width:460px;margin:28px auto 0;text-align:left;display:flex;flex-direction:column;gap:0}
.inevl .r{display:flex;gap:14px;padding:10px 4px;border-top:1px solid var(--line);font-size:15px;color:var(--fg2)}
.inevl .r:first-child{border-top:0}
.inevl .r .m{color:var(--hold);font-family:'JetBrains Mono',monospace;font-size:13px;padding-top:2px}
.tsteps{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;align-items:center;margin:40px auto 76px}
.tstep{border:1px solid var(--line2);border-radius:14px;padding:20px 30px;text-align:center;background:var(--panel);min-width:150px}
.tstep b{display:block;font-family:'Space Grotesk',sans-serif;font-size:19px;font-weight:600;color:var(--fg);letter-spacing:-.015em}
.tstep span{display:block;font-size:11px;color:var(--fg3);font-family:'JetBrains Mono',monospace;margin-top:5px}
.tstep.hot{border-color:color-mix(in srgb,var(--acc) 45%,transparent)}
.tstep.hot b{color:var(--acc2)}
.tarr{color:var(--fg3);font-size:13px;position:relative;top:-1px}
@keyframes vglow{0%,100%{border-color:var(--line);color:var(--fg2)}10%,16%{border-color:color-mix(in srgb,var(--acc) 60%,transparent);color:var(--fg)}}

@media(prefers-reduced-motion:reduce){html.js .vchain .chip{animation:none}}

/* simulação de eventos ativa -> dots CSS estáticos saem de cena */
.flowart svg.sim .fdot{display:none}

.bignum{display:block;font-family:'Space Grotesk',sans-serif;font-size:40px;font-weight:700;letter-spacing:-.02em;line-height:1;color:color-mix(in srgb,var(--acc) 22%,transparent);margin-bottom:8px}

.h1b{font-size:46px}
@media(max-width:900px){.h1b{font-size:30px}}

/* fluxo legível: entrada mais verde, conectores internos mais fortes, saída neutra */
.flowart path[data-flow="in"]{stroke:var(--line2)}
.flowart path[data-flow="p2c"],.flowart path[data-flow="c2b"]{stroke:color-mix(in srgb,var(--acc) 40%,var(--line2));stroke-width:1.6}
.flowart path[data-flow="out"]{stroke:color-mix(in srgb,var(--acc) 30%,var(--line2))}

/* Observatory: observa, nao processa — contorno tracejado que respira */
.flowart .obsnode{stroke:color-mix(in srgb,var(--acc) 45%,transparent);stroke-dasharray:5 4}
@keyframes obsBreath{0%,100%{stroke-opacity:.45}50%{stroke-opacity:1}}
@keyframes obsMarch{to{stroke-dashoffset:-18}}
@keyframes obsGlow{0%,100%{filter:drop-shadow(0 0 0px transparent)}50%{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--acc) 30%,transparent))}}
html.js .flowart .obsnode{animation:obsBreath 4s ease-in-out infinite, obsMarch 2.6s linear infinite, obsGlow 5.5s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){html.js .flowart .obsnode{animation:none}}

/* fronteira PERSISTENTE da camada — a infra inteira, Observatory incluso */
.flowart .layerbox{fill:color-mix(in srgb,var(--acc) 3%,transparent);stroke:color-mix(in srgb,var(--acc) 22%,transparent);stroke-width:1.2}


/* footer v3 — esquerda = marca (Stripe); direita = colunas magras */
footer{padding:88px 0 44px}
.ftgrid{display:grid;grid-template-columns:2fr .8fr .85fr .8fr;gap:34px}
@media(max-width:960px){.ftgrid{grid-template-columns:1fr 1fr}.ftbrand{grid-column:1/-1}}
.ftbrand{text-align:left}
.ftstate{font-family:'Space Grotesk',sans-serif;font-size:14.5px;font-weight:500;color:var(--fg2);white-space:nowrap;font-weight:600;letter-spacing:-.02em;line-height:1.25;color:var(--fg);margin-top:18px}
.ftflow{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--fg2);margin-top:16px;letter-spacing:.02em}
.ftflow span{color:var(--fg3)}
.ftflow b{color:var(--acc2);font-weight:500}
.ftslogan{font-size:12.5px;color:var(--fg3);margin-top:16px;line-height:1.65}
.ftcol{display:flex;flex-direction:column;gap:10px;text-align:left;padding-top:6px}
.ftcol .h{font-family:'JetBrains Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg3);margin-bottom:6px}
.ftcol a{font-size:13px;color:var(--fg2)}
.ftcol a:hover{color:var(--fg)}
.ftbar{margin-top:60px;padding-top:24px;border-top:1px solid var(--line);font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--fg3)}

.ftlogo .word{font-size:25px}
.ftflow{margin-top:18px}

/* knowledge object explorer — a API como documentação viva */
.kx{background:var(--code-bg);border:1px solid var(--code-line);border-radius:14px;overflow:hidden;font-size:12.5px}
.kxhead{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--code-line);color:var(--fg2);background:color-mix(in srgb,var(--panel) 60%,transparent)}
.kxpill{margin-left:auto;font-size:10px;color:var(--acc2);border:1px solid color-mix(in srgb,var(--acc) 35%,transparent);border-radius:99px;padding:2px 9px}
.kxclaim{padding:13px 16px 4px;color:var(--fg);font-size:13px}
.kxstat{display:flex;gap:14px;padding:8px 16px 12px;color:var(--fg3);font-size:11.5px;border-bottom:1px solid var(--code-line)}
.kxstat .ok{color:var(--acc2)}
.kx details{border-bottom:1px solid var(--code-line)}
.kx details:last-child{border-bottom:0}
.kx summary{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;color:var(--fg2);font-size:12px;list-style:none;transition:background .15s}
.kx summary::-webkit-details-marker{display:none}
.kx summary::before{content:'▸';color:var(--fg3);font-size:10px;transition:transform .2s}
.kx details[open] summary::before{transform:rotate(90deg)}
.kx summary:hover{background:color-mix(in srgb,var(--fg) 4%,transparent)}
.kx summary .n{margin-left:auto;font-size:10.5px;color:var(--fg3);border:1px solid var(--line);border-radius:6px;padding:1px 8px}
.kxrow{padding:7px 16px 7px 34px;color:var(--fg3);font-size:11.5px}
.kxrow .y{color:var(--acc2)}
.kxrow .x{color:var(--hold)}

/* parser demo: blocos estruturados aparecem em sequência */
@keyframes sbIn{0%,38%{opacity:0}50%,84%{opacity:1}96%,100%{opacity:0}}
html.js .mo-parser .sb,html.js .mo-canon .sb{opacity:0;animation:sbIn 9s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){html.js .mo-parser .sb,html.js .mo-canon .sb{animation:none;opacity:1}}

/* knowledge: sessions come and go; memory accumulates */
@keyframes bsIn{0%{opacity:0}6%,94%{opacity:1}100%{opacity:0}}
html.js .mo-know .bs{opacity:0;animation:bsIn 13s ease-out infinite}
@media(prefers-reduced-motion:reduce){html.js .mo-know .bs{animation:none;opacity:1}}

/* observatory: a mudança se propaga em cascata e persiste */
@keyframes osIn{0%{opacity:0}7%,93%{opacity:1}100%{opacity:0}}
html.js .mo-obs .os{opacity:0;animation:osIn 11s ease-out infinite}
@media(prefers-reduced-motion:reduce){html.js .mo-obs .os{animation:none;opacity:1}}

/* parser: o documento de entrada acende quando seu elemento é detectado */
@keyframes dlPulse{0%,38%{filter:none}46%,58%{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--acc) 55%,transparent)) brightness(1.6)}70%,100%{filter:none}}
html.js .mo-parser .dl{animation:dlPulse 9s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){html.js .mo-parser .dl{animation:none}}

/* knowledge v2: systems connect and fade; memory stays and grows */
@keyframes bcGhost{0%{opacity:0}5%,20%{opacity:1}28%,93%{opacity:.22}100%{opacity:0}}
html.js .mo-know .bc{opacity:0;animation:bcGhost 13s ease-out infinite}
@media(prefers-reduced-motion:reduce){html.js .mo-know .bc{animation:none;opacity:.6}}

.kxstat .kxver{margin-left:auto;color:var(--acc2);border:1px solid color-mix(in srgb,var(--acc) 35%,transparent);border-radius:99px;padding:1px 9px;font-size:10px}

.ftbar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.ftbar .cat{letter-spacing:.08em;text-transform:uppercase;font-size:10px}

@media(max-width:960px){.ftstate{white-space:normal}}

/* auth: signin / create account */
.auth{max-width:400px;margin:0 auto;background:var(--panel);border:1px solid var(--line2);border-radius:16px;padding:36px 34px;text-align:center}
.authform{display:flex;flex-direction:column;gap:14px;text-align:left}
.af span{display:block;font-family:JetBrains Mono,monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg3);margin-bottom:6px}
.af input{width:100%;background:var(--ink2);border:1px solid var(--line2);border-radius:9px;padding:11px 13px;font-size:14px;color:var(--fg);font-family:Inter,system-ui,sans-serif;outline:none;transition:border-color .15s}
.af input:focus{border-color:color-mix(in srgb,var(--acc) 55%,transparent)}
.af input::placeholder{color:var(--fg3);opacity:.7}
.authdiv{display:flex;align-items:center;gap:12px;margin:22px 0;color:var(--fg3);font-size:11.5px;font-family:JetBrains Mono,monospace}
.authdiv::before,.authdiv::after{content:"";flex:1;height:1px;background:var(--line)}

/* domains: grade universal com ciclo de destaque lento */
.dcard{border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 70%,transparent);padding:16px 18px;text-align:left}
.dcard h4{font-size:15px;margin-bottom:6px}
.dcard p.mono{font-size:10.5px;color:var(--fg3);line-height:1.7}
@keyframes domGlow{0%,100%{border-color:var(--line)}5%,9%{border-color:color-mix(in srgb,var(--acc) 55%,transparent)}14%{border-color:var(--line)}}
html.js .dcard{animation:domGlow 16s ease-in-out infinite}
html.js .dcard:nth-child(2){animation-delay:2s}
html.js .dcard:nth-child(3){animation-delay:4s}
html.js .dcard:nth-child(4){animation-delay:6s}
html.js .dcard:nth-child(5){animation-delay:8s}
html.js .dcard:nth-child(6){animation-delay:10s}
html.js .dcard:nth-child(7){animation-delay:12s}
html.js .dcard:nth-child(8){animation-delay:14s}
@media(prefers-reduced-motion:reduce){html.js .dcard{animation:none}}

.dcard ul{margin:0;padding:0;list-style:none}
.dcard li{font-size:11.5px;color:var(--fg3);padding:2.5px 0 2.5px 14px;position:relative}
.dcard li::before{content:'●';position:absolute;left:0;font-size:6px;top:8px;color:color-mix(in srgb,var(--acc) 55%,transparent)}
.dcard.swap{transition:opacity .45s}
.dcard.fade{opacity:0}
.dflow .dfd,.dflow .dfs{transition:opacity .4s}
.dflow.fade .dfd,.dflow.fade .dfs{opacity:0}

.dcard .dsub{display:block;font-family:'JetBrains Mono',monospace;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);opacity:.7;margin:2px 0 6px}
.rotchip{transition:opacity .35s}
.rotchip.fade{opacity:0}

/* knowledge objects: relationships as navigable objects */
.kxrel{display:flex;flex-wrap:wrap;gap:7px;padding:9px 16px 12px 34px}
.kxobj{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--acc2);border:1px solid color-mix(in srgb,var(--acc) 30%,transparent);border-radius:7px;padding:3px 10px;cursor:pointer;transition:background .15s}
.kxobj:hover{background:color-mix(in srgb,var(--acc) 9%,transparent)}
.kxobj.dim{color:var(--fg3);border-color:var(--line)}

/* ═══ RESPONSIVE PASS ═══ */
.menubtn{display:none;background:none;border:1px solid var(--line2);border-radius:8px;width:38px;height:34px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0}
.menubtn span{display:block;width:16px;height:1.6px;background:var(--fg);transition:transform .2s,opacity .2s}
.menubtn.open span:nth-child(1){transform:translateY(5.6px) rotate(45deg)}
.menubtn.open span:nth-child(2){opacity:0}
.menubtn.open span:nth-child(3){transform:translateY(-5.6px) rotate(-45deg)}
.mnav{display:none;border-top:1px solid var(--line);background:var(--ink);padding:10px 20px 16px;flex-direction:column}
.mnav.open{display:flex}
.mnav a{padding:11px 4px;font-size:15px;color:var(--fg);border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.mnav a.sub{font-size:13.5px;color:var(--fg2);padding-left:20px}
.mnav a:last-child{border-bottom:0}
@media(max-width:960px){
  .menubtn{display:flex}
  nav .si{display:none}
}
@media(max-width:900px){
  .hero[style]{grid-template-columns:1fr!important;gap:28px}
  .wrap{padding:0 18px}
  section{padding:52px 0}
  section.tight{padding:36px 0}
  .pchap{padding:42px 0;gap:24px}
  .pchap h3{font-size:24px}
  .bignum{font-size:32px}
  .flowart{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .flowart svg{min-width:680px}
  .kxstat{flex-wrap:wrap;row-gap:4px}
  .hero .sub{font-size:16px}
  .auth{padding:28px 22px}
}
@media(max-width:640px){
  h2{font-size:26px!important}
  .h1b{font-size:28px}
  h1{font-size:34px}
  .manif{font-size:24px}
  .btn{padding:11px 15px;font-size:13.5px}
  .ftgrid{gap:22px}
  .ftstate{white-space:normal;font-size:16px}
  .vcard{width:100%;max-width:340px}
}

/* parser: 4 atos — entende, organiza, ancora, entrega (ciclo 14s) */
@keyframes phWin{0%,3%{opacity:0}6%,22%{opacity:1}25%,100%{opacity:0}}
html.js .mo-parser .ph{opacity:0;animation:phWin 14s ease-in-out infinite}
html.js .mo-parser .ph2{animation-delay:3.5s}
html.js .mo-parser .ph3{animation-delay:7s}
html.js .mo-parser .ph4{animation-delay:10.5s}
@keyframes loA{0%,3%{opacity:0}6%,95%{opacity:1}100%{opacity:0}}
@keyframes loB{0%,27%{opacity:0}31%,95%{opacity:1}100%{opacity:0}}
@keyframes loC{0%,52%{opacity:0}56%,95%{opacity:1}100%{opacity:0}}
html.js .mo-parser .lo{opacity:0}
html.js .mo-parser .lo1{animation:loA 14s ease-in-out infinite}
html.js .mo-parser .lo2{animation:loB 14s ease-in-out infinite}
html.js .mo-parser .lo3{animation:loC 14s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){
  html.js .mo-parser .ph{animation:none;opacity:0}
  html.js .mo-parser .ph4{opacity:1}
  html.js .mo-parser .lo{animation:none;opacity:1}
}

/* anti layout-shift: alturas reservadas pelo pior caso medido */
.kx{min-height:600px;display:flex;flex-direction:column}
.kx details:last-child{border-bottom:0}
.dcard{min-height:148px}
@media(max-width:900px){.kx{min-height:0}}

/* mo-canon v2: adjudicação em 5 atos — 9s, pausa final, loop suave.
   governança em funcionamento, não geração: sem partículas, sem glow. */
@keyframes ckIn2_6{0%,2%{opacity:0}6%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn8_12{0%,8%{opacity:0}12%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn14_18{0%,14%{opacity:0}18%,95%{opacity:1}100%{opacity:0}}
@keyframes ckNqP{0%,18%{opacity:.85}21%{opacity:1}24%{opacity:.55}27%{opacity:1}30%,100%{opacity:.85}}
@keyframes ckIn20_26{0%,20%{opacity:0}26%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn22_26{0%,22%{opacity:0}26%,95%{opacity:1}100%{opacity:0}}
@keyframes ckSt1K{0%,26%{opacity:0}29%,40%{opacity:.8}45%,100%{opacity:0}}
@keyframes ckDot1{0%,28%{opacity:0}30%,44%{opacity:.9}45%,100%{opacity:0}}
@keyframes ckDot2{0%,32%{opacity:0}34%,44%{opacity:.9}45%,100%{opacity:0}}
@keyframes ckDot3{0%,36%{opacity:0}38%,44%{opacity:.9}45%,100%{opacity:0}}
@keyframes ckIn45_49{0%,45%{opacity:0}49%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn47_51{0%,47%{opacity:0}51%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn50_55{0%,50%{opacity:0}55%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn55_58{0%,55%{opacity:0}58%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn59_62{0%,59%{opacity:0}62%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn62_65{0%,62%{opacity:0}65%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn65_68{0%,65%{opacity:0}68%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn72_77{0%,72%{opacity:0}77%,95%{opacity:1}100%{opacity:0}}
@keyframes ckIn81_86{0%,81%{opacity:0}86%,96%{opacity:1}100%{opacity:0}}
html.js .mo-canon .ckE1{opacity:0;animation:ckIn2_6 9s linear infinite}
html.js .mo-canon .ckE2{opacity:0;animation:ckIn8_12 9s linear infinite}
html.js .mo-canon .ckE3{opacity:0;animation:ckIn14_18 9s linear infinite}
html.js .mo-canon .ckNq{animation:ckNqP 9s linear infinite}
html.js .mo-canon .ckLn{opacity:0;animation:ckIn20_26 9s linear infinite}
html.js .mo-canon .ckBox{opacity:0;animation:ckIn22_26 9s linear infinite}
html.js .mo-canon .ckSt1{opacity:0;animation:ckSt1K 9s linear infinite}
html.js .mo-canon .ckD1{opacity:0;animation:ckDot1 9s linear infinite}
html.js .mo-canon .ckD2{opacity:0;animation:ckDot2 9s linear infinite}
html.js .mo-canon .ckD3{opacity:0;animation:ckDot3 9s linear infinite}
html.js .mo-canon .ckSt2{opacity:0;animation:ckIn45_49 9s linear infinite}
html.js .mo-canon .ckAr{opacity:0;animation:ckIn47_51 9s linear infinite}
html.js .mo-canon .ckCard{opacity:0;animation:ckIn50_55 9s linear infinite}
html.js .mo-canon .ckF1{opacity:0;animation:ckIn55_58 9s linear infinite}
html.js .mo-canon .ckF2{opacity:0;animation:ckIn59_62 9s linear infinite}
html.js .mo-canon .ckF3{opacity:0;animation:ckIn62_65 9s linear infinite}
html.js .mo-canon .ckF4{opacity:0;animation:ckIn65_68 9s linear infinite}
html.js .mo-canon .ckV{opacity:0;animation:ckIn72_77 9s linear infinite}
html.js .mo-canon .ckCap{opacity:0;animation:ckIn81_86 9s linear infinite}
@media(prefers-reduced-motion:reduce){
  html.js .mo-canon .ckE1,html.js .mo-canon .ckE2,html.js .mo-canon .ckE3,
  html.js .mo-canon .ckLn,html.js .mo-canon .ckBox,html.js .mo-canon .ckSt2,
  html.js .mo-canon .ckAr,html.js .mo-canon .ckCard,html.js .mo-canon .ckF1,
  html.js .mo-canon .ckF2,html.js .mo-canon .ckF3,html.js .mo-canon .ckF4,
  html.js .mo-canon .ckV,html.js .mo-canon .ckCap{animation:none;opacity:1}
  html.js .mo-canon .ckSt1,html.js .mo-canon .ckD1,html.js .mo-canon .ckD2,html.js .mo-canon .ckD3{animation:none;opacity:0}
  html.js .mo-canon .ckNq{animation:none}
}

/* gran finale: as tres linhas entram em sequencia; o traco estabiliza
   sob "Evidence remains." (permanencia). One-shot, disparado pelo reveal. */
@keyframes finIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes finU{from{transform:scaleX(0)}to{transform:scaleX(1)}}
html.js .finale .fl{opacity:0}
html.js .finale .fu{transform:scaleX(0);transform-origin:center}
html.js .finale .rv.in .l1{animation:finIn .8s .15s ease forwards}
html.js .finale .rv.in .l2{animation:finIn .8s 1.05s ease forwards}
html.js .finale .rv.in .l3{animation:finIn .8s 1.95s ease forwards}
html.js .finale .rv.in .fu{animation:finU .6s 2.8s ease forwards}
html.js .finale .rv.in .l4{animation:finIn .8s 3.1s ease forwards}
@media(prefers-reduced-motion:reduce){
  html.js .finale .fl{opacity:1;animation:none!important}
  html.js .finale .fu{transform:none;animation:none!important}
}

/* footer = assinatura: o manifesto ecoa o finale */
.ftsig{font-family:var(--disp);font-weight:500;font-size:13.5px;letter-spacing:-.01em;color:var(--fg2);margin-top:14px;white-space:nowrap}

/* ponte de produtos: a empresa numa linha — monta em ~4s (one-shot),
   depois a particula vive: cinza ate o VK, verde ao sair, e SE DIVIDE em
   tres rumo a Agents/Models/Applications. Boxes acendem na passagem. */
@keyframes ppIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes ppLn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
html.js .flowart .pp1,html.js .flowart .pp2,html.js .flowart .pp3,html.js .flowart .pp4,html.js .flowart .pp5{opacity:0}
html.js .flowart .ppl{transform:scaleX(0);transform-origin:left center}
html.js .flowart.rv.in .pp1{animation:ppIn .5s .1s ease forwards}
html.js .flowart.rv.in .pl1{animation:ppLn .4s .55s ease forwards}
html.js .flowart.rv.in .pp2{animation:ppIn .5s .85s ease forwards}
html.js .flowart.rv.in .pl2{animation:ppLn .4s 1.3s ease forwards}
html.js .flowart.rv.in .pp3{animation:ppIn .5s 1.6s ease forwards}
html.js .flowart.rv.in .pl3{animation:ppLn .4s 2.1s ease forwards}
html.js .flowart.rv.in .pp4{animation:ppIn .6s 2.4s ease forwards}
html.js .flowart.rv.in .pl4a,html.js .flowart.rv.in .pl4b,html.js .flowart.rv.in .pl4c{animation:ppLn .4s 3.05s ease forwards}
html.js .flowart.rv.in .pp5{animation:ppIn .5s 3.35s ease forwards}
@keyframes ppTravel{0%{offset-distance:0%;fill:#AEB7C7;opacity:0}4%{opacity:.9}50%{fill:#AEB7C7}58%{fill:#22C07E}73%{opacity:.9}76%,100%{offset-distance:100%;fill:#4FD69B;opacity:0}}
@keyframes ppSplit{0%,76%{offset-distance:0%;opacity:0}79%{opacity:.9}92%{offset-distance:100%;opacity:.9}96%,100%{offset-distance:100%;opacity:0}}
@keyframes ppG1{0%,13%,25%,100%{filter:none}19%{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--acc) 40%,transparent))}}
@keyframes ppG2{0%,34%,48%,100%{filter:none}41%{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--acc) 40%,transparent))}}
@keyframes ppG3{0%,58%,76%,100%{filter:none;transform:scale(1)}67%{filter:drop-shadow(0 0 9px color-mix(in srgb,var(--acc) 55%,transparent));transform:scale(1.02)}}
@keyframes ppG4{0%,86%,100%{filter:none}92%{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--acc) 40%,transparent))}}
html.js .flowart .ppd,html.js .flowart .pps{opacity:0;fill:#4FD69B}
html.js .flowart.rv.in .ppd{animation:ppTravel 6.5s 4s linear infinite}
html.js .flowart.rv.in .pps{animation:ppSplit 6.5s 4s linear infinite}
html.js .flowart.rv.in .ppb1{animation:ppG1 6.5s 4s linear infinite}
html.js .flowart.rv.in .ppb2{animation:ppG2 6.5s 4s linear infinite}
html.js .flowart .ppb3{transform-box:fill-box;transform-origin:center}
html.js .flowart.rv.in .ppb3{animation:ppG3 6.5s 4s linear infinite}
html.js .flowart.rv.in .ppb4{animation:ppG4 6.5s 4s linear infinite}
@media(prefers-reduced-motion:reduce){
  html.js .flowart .pp1,html.js .flowart .pp2,html.js .flowart .pp3,html.js .flowart .pp4,html.js .flowart .pp5{opacity:1;animation:none!important}
  html.js .flowart .ppl{transform:none;animation:none!important}
  html.js .flowart .ppd,html.js .flowart .pps{animation:none!important;opacity:0}
  html.js .flowart .ppb1,html.js .flowart .ppb2,html.js .flowart .ppb3,html.js .flowart .ppb4{animation:none!important}
}

/* tema light: toggle ☀/☾ (persistido em localStorage orves-theme) */
:root[data-base="light"]{--code-bg:#F3F5F8;--code-line:#D8DDE4;--code-fg:#2A2F3A;--code-dim:#67707E}
:root[data-base="light"] .btn{color:#fff}
:root[data-base="light"] .btn.gh{color:var(--fg)}
:root[data-base="light"] .grid-bg{opacity:.35}
.thbtn{background:none;border:1px solid var(--line2);border-radius:8px;color:var(--fg2);font-size:14px;width:32px;height:32px;cursor:pointer;line-height:1}
.thbtn:hover{color:var(--fg)}

/* ── página de produto: lie-chain, flow, pipeline interno, kw-cards, output demo ── */
.cmp{max-width:780px;margin:28px auto 0;display:flex;flex-direction:column;gap:12px}
.cmprow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:center}
.cmprow .lab{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;min-width:104px;text-align:right;color:var(--fg3)}
.cmprow .n{font-family:var(--mono);font-size:12px;border:1px solid var(--line2);border-radius:8px;padding:6px 12px;color:var(--fg2);background:var(--panel)}
.cmprow .a{color:var(--fg3);font-size:12px}
.cmprow.bad .n.x{border-color:color-mix(in srgb,#E06A5E 50%,transparent);color:#E06A5E}
.cmprow.good .n.x{border-color:color-mix(in srgb,var(--acc) 50%,transparent);color:var(--acc2)}
.kwl{list-style:none;margin:0 0 12px;padding:0;font-family:var(--mono);font-size:12.5px;color:var(--fg);display:flex;flex-direction:column;gap:7px}
.kwl li{border-bottom:1px solid var(--line);padding-bottom:7px}
.kwd{font-size:12.5px;color:var(--fg3)}
.flowchain{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:26px auto 6px}
.flowchain .fc{font-family:var(--mono);font-size:12px;border:1px solid var(--line2);border-radius:8px;padding:7px 13px;color:var(--fg2);background:var(--panel);animation:fcglow 5s infinite}
.flowchain .a{color:var(--fg3);font-size:12px}
@keyframes fcglow{0%,100%{border-color:var(--line2);color:var(--fg2)}10%{border-color:var(--acc);color:var(--acc2)}22%{border-color:var(--line2);color:var(--fg2)}}
.deep{max-width:700px;margin:30px auto 0;display:flex;flex-direction:column;text-align:left}
.deep .dstage{display:flex;align-items:baseline;gap:14px;padding:11px 18px;border:1px solid var(--line2);border-radius:10px;background:var(--panel)}
.deep .dstage b{font-family:var(--mono);font-size:13px;min-width:160px;font-weight:500;color:var(--fg)}
.deep .dstage span{font-family:var(--mono);font-size:11.5px;color:var(--fg3)}
.deep .darr{color:var(--fg3);font-size:11px;padding:3px 0 3px 28px;line-height:1}
.deep .dstage.out{border-color:color-mix(in srgb,var(--acc) 42%,transparent)}
.deep .dstage.out b{color:var(--acc2)}
.odemo{display:grid;grid-template-columns:252px 1fr;gap:24px;max-width:880px;margin:30px auto 0;align-items:stretch;text-align:left}
.odemo .pgmock{border:1px solid var(--line2);border-radius:12px;background:var(--panel);padding:14px;display:flex;align-items:center;justify-content:center}
@media(max-width:780px){.odemo{grid-template-columns:1fr}.odemo .pgmock{max-width:300px;margin:0 auto}}

/* ── VK: anatomia do knowledge object · timeline · before×after ── */
.kobj{max-width:900px;margin:30px auto 0;border:1px solid var(--line2);border-radius:14px;background:var(--panel);text-align:left;overflow:hidden}
.kohead{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.kolab{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--fg3);white-space:nowrap}
.koclaim{font-family:var(--disp);font-size:17px;flex:1;min-width:240px}
.kostate{font-family:var(--mono);font-size:10px;border:1px solid color-mix(in srgb,var(--acc) 55%,transparent);color:var(--acc2);border-radius:6px;padding:3px 9px}
.kogrid{display:grid;grid-template-columns:1.3fr 1fr 1.1fr}
.kocol{padding:16px 20px;border-right:1px solid var(--line)}
.kocol:last-child{border-right:0}
.kocol h5{font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--fg3);margin:0 0 8px;font-weight:500}
.koev{font-family:var(--mono);font-size:11.5px;color:var(--fg2);padding:6px 0;border-bottom:1px solid var(--line)}
.koev em{font-style:normal;color:var(--acc2);font-size:10px;margin-left:6px}
.koev.bad em{color:#E06A5E}
.kograph{padding:16px 22px 18px;border-top:1px solid var(--line)}
@media(max-width:820px){.kogrid{grid-template-columns:1fr}.kocol{border-right:0;border-bottom:1px solid var(--line)}}
.htl{display:flex;gap:10px;align-items:stretch;justify-content:center;flex-wrap:wrap;max-width:1040px;margin:30px auto 0}
.hstop{border:1px solid var(--line2);border-radius:12px;background:var(--panel);padding:14px 16px;width:205px;text-align:left}
.hstop.cur{border-color:color-mix(in srgb,var(--acc) 45%,transparent)}
.hstop .tm{font-family:var(--mono);font-size:10px;color:var(--fg3);letter-spacing:.08em}
.hstop .tv{font-family:var(--mono);font-size:10px;color:var(--acc2);border:1px solid var(--line2);border-radius:5px;padding:1px 6px;margin-left:8px}
.hstop p{font-size:13px;color:var(--fg);margin:8px 0 6px;line-height:1.45}
.hstop .te{font-family:var(--mono);font-size:10.5px;color:var(--fg3)}
.harr{align-self:center;color:var(--fg3);font-size:13px}
.vchain{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;align-items:center;font-family:var(--mono);font-size:12px}
.vchain li{border:1px solid var(--line2);border-radius:8px;background:var(--ink);padding:6px 14px;color:var(--fg2)}
.vchain li.sep{border:0;background:none;color:var(--fg3);padding:2px;font-size:10px}
.vchain li.bad{border-color:color-mix(in srgb,#E06A5E 50%,transparent);color:#E06A5E}
.vchain li.good{border-color:color-mix(in srgb,var(--acc) 50%,transparent);color:var(--acc2)}
/* products: linhas IN/OUT/FOR dos cards */
.ioline{font-family:var(--mono);font-size:11.5px;color:var(--fg2);margin-top:6px;line-height:1.5}
.iolab{color:var(--fg3);font-size:9.5px;letter-spacing:.1em;margin-right:8px;display:inline-block;min-width:28px}
/* why-orves: credo */
.credo{max-width:640px;margin:30px auto 0;display:flex;flex-direction:column;gap:16px}
.credo p{font-family:var(--disp);font-size:21px;line-height:1.4;color:var(--fg2);letter-spacing:-.01em}
.credo p b{color:var(--fg);font-weight:600}
.credo p:nth-child(even) b{color:var(--acc2)}
@media(max-width:640px){.credo p{font-size:17px}}
