/**
 * Tema do Ágora — SÓ tokens.
 *
 * É a camada que muda entre clientes. Cor, contraste e as duas variações de
 * tema vivem aqui; nenhuma regra de layout entra neste arquivo.
 *
 * Os três estados do tema do visitante: `:root` define o claro completo,
 * `[data-theme="dark"]` sobrescreve só os tokens. Cor definida apenas dentro de
 * um bloco de tema nunca se aplica no estado sem marcação — é a falha clássica
 * de página ilegível.
 */
:root{
  --ground:#FCFAFB; --surface:#FFFFFF; --surface-2:#F5F1F7; --sunken:#EDE6F1;
  --line:#E7E0EB; --line-2:#D2C7DA;
  --ink:#1B1522; --ink-2:#4E4459; --ink-3:#7E7389;
  --plum:#734B9C; --plum-ink:#5A3880; --plum-wash:#F2ECF8;
  --gold:#FDC234; 
  --accent-edge:#C8971F; --accent-surface:#FBF8FC;
  --night:#160F1E; --night-2:#221730;
  --on-night:#F6F1FA; --on-night-2:#C2B3D1;
}
:root[data-theme="dark"]{
  --ground:#120D18; --surface:#1A1322; --surface-2:#20172A; --sunken:#0C0811;
  --line:#2D2237; --line-2:#42324F;
  --ink:#F4EFF8; --ink-2:#C0B2CE; --ink-3:#8C7F9B;
  --plum:#B994DE; --plum-ink:#D9C6EE; --plum-wash:#251A31;
  --gold:#F6C862; 
  --accent-edge:#F0BE58; --accent-surface:#221A2D;
}

.ms{font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;line-height:1;
  letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;
  -webkit-font-feature-settings:'liga';font-variation-settings:'FILL' 0,'wght' 300,'GRAD' 0,'opsz' 24}
*{box-sizing:border-box}
body{margin:0;padding:0;background:var(--ground);color:var(--ink);
  font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.narrow{max-width:54ch}

h1,h2,h3{font-weight:600;margin:0;letter-spacing:-.035em;text-wrap:balance}
h1{font-size:clamp(2.5rem,5.8vw,4.5rem);line-height:1.03;font-weight:200;letter-spacing:-.05em}
h2{font-size:clamp(1.75rem,3.3vw,2.6rem);line-height:1.12;font-weight:250;letter-spacing:-.042em}
h3{font-size:1.06rem;line-height:1.3;letter-spacing:-.022em}
h1.ph{font-size:clamp(1.75rem,3.3vw,2.6rem);line-height:1.12;font-weight:250;letter-spacing:-.042em}
.night h1.ph,.subhero h1.ph{color:var(--on-night)}
p{margin:0}
a{color:inherit}
.mono,.kicker{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace}
.kicker{font-size:.68rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--plum)}
.kicker.on-night{color:var(--gold)}
.lead{font-size:1.05rem;color:var(--ink-2)}
.night .lead{color:var(--on-night-2)}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .3s,border-color .3s}
.nav-in{max-width:1160px;margin:0 auto;padding:15px 24px;display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:center;gap:9px;font-size:1.2rem;font-weight:600;letter-spacing:-.04em;color:var(--on-night);text-decoration:none;cursor:pointer}
.mark{width:25px;height:25px;flex:none}
.nav .links{display:flex;gap:18px;white-space:nowrap}
.burger{display:none;background:transparent;border:1px solid rgba(255,255,255,.28);color:var(--on-night-2);
  width:33px;height:33px;border-radius:999px;cursor:pointer;align-items:center;justify-content:center}
.burger .ms{font-size:18px}
.nav.stuck .burger{color:var(--ink-2);border-color:var(--line-2)}
@media(max-width:1060px){
  .nav .links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
    background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 24px 14px}
  .nav.open .links{display:flex}
  .nav .links a.lnk{color:var(--ink-2);padding:11px 0;border-bottom:1px solid var(--line)}
  .nav .links a.lnk:last-child{border-bottom:0}
  .burger{display:inline-flex}
}
.nav a.lnk{font-size:.85rem;color:var(--on-night-2);text-decoration:none;padding:5px 0;border-bottom:1px solid transparent;cursor:pointer}
.nav a.lnk:hover{color:var(--on-night);border-bottom-color:var(--gold)}
.nav a.lnk[aria-current="page"]{color:var(--on-night);border-bottom-color:var(--gold)}
.nav.stuck a.lnk[aria-current="page"]{color:var(--ink)}
.nav .spacer{flex:1}
.nav.stuck{background:color-mix(in srgb,var(--ground) 90%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav.stuck .brand,.nav.stuck a.lnk:hover{color:var(--ink)}
.nav.stuck a.lnk{color:var(--ink-2)}
.nav.stuck .tglr{color:var(--ink-2);border-color:var(--line-2)}
.btn{font:inherit;font-size:.85rem;font-weight:500;line-height:1.2;border-radius:999px;padding:10px 17px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;white-space:nowrap}
.btn .ms{font-size:18px;line-height:1}
.btn.primary{background:var(--gold);color:#3A2A00;border-color:var(--gold)}
.btn.solid{background:var(--plum);color:#fff;border-color:var(--plum)}
.btn.ghost{background:transparent;color:var(--on-night);border-color:rgba(255,255,255,.3)}
.btn.line{background:transparent;color:var(--ink-2);border-color:var(--line-2)}
.btn:hover{filter:brightness(1.08)}
.btn.ghost:hover,.btn.line:hover{border-color:var(--gold);color:var(--gold);filter:none}
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.tglr .ms{font-size:17px}
.tglr{background:transparent;border:1px solid rgba(255,255,255,.28);color:var(--on-night-2);width:33px;height:33px;border-radius:999px;cursor:pointer;font-size:.88rem;display:inline-flex;align-items:center;justify-content:center}
.tglr:hover{color:var(--gold);border-color:var(--gold)}

.page{display:none}
.page[data-active="true"]{display:block}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;background:var(--night);overflow:hidden}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.veil{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(22,15,30,.88) 0%,rgba(22,15,30,.3) 32%,rgba(22,15,30,.66) 70%,rgba(22,15,30,.97) 100%),
  radial-gradient(120% 78% at 10% 90%,rgba(115,75,156,.6) 0%,rgba(115,75,156,0) 60%)}
.hin{position:relative;z-index:2;width:100%;padding:0 0 clamp(36px,6vh,72px)}
.hero h1{color:var(--on-night);max-width:14ch}
.hero h1 em{font-style:normal;font-weight:600;color:var(--gold)}
.hero .sub{color:var(--on-night-2);font-size:clamp(1rem,1.6vw,1.2rem);max-width:46ch;margin-top:20px;line-height:1.5}
.cta{display:flex;gap:11px;flex-wrap:wrap;margin-top:28px}
.chanstrip{display:flex;flex-wrap:wrap;margin-top:clamp(34px,5vh,60px);border-top:1px solid rgba(255,255,255,.16)}
.chanstrip div{flex:1 1 128px;padding:15px 16px 0;border-right:1px solid rgba(255,255,255,.1)}
.chanstrip div:last-child{border-right:0}
.ch{font-family:'JetBrains Mono',monospace;font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:4px}
.cd{font-size:.8rem;color:var(--on-night-2);line-height:1.35}

/* sections */
.pad{padding:clamp(72px,9.5vh,124px) 0}
.tone{background:var(--surface)}
.tone-2{background:var(--surface-2)}
.night{background:var(--night);color:var(--on-night)}
.night h2,.night h3{color:var(--on-night)}
.shead{display:flex;flex-direction:column;gap:13px;margin-bottom:40px}

/* cards curtos */
.cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(232px,1fr))}
.card{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:20px;display:flex;flex-direction:column;gap:9px}
.night .card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.13)}
.card p{font-size:.87rem;color:var(--ink-2);line-height:1.5}
.night .card p{color:var(--on-night-2)}
.card .ico .ms{font-size:20px}
.card .ico{width:34px;height:34px;border-radius:9px;background:var(--plum-wash);color:var(--plum);display:flex;align-items:center;justify-content:center;font-size:1rem}
.night .card .ico{background:rgba(255,255,255,.08);color:var(--gold)}

/* jornada sticky */
.jorn{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
@media(max-width:900px){.jorn{grid-template-columns:1fr;gap:24px}}
.stage{position:sticky;top:13vh;height:70vh;border-radius:17px;overflow:hidden;border:1px solid rgba(255,255,255,.13);background:var(--night-2)}
@media(max-width:900px){.stage{position:relative;height:40vh;top:0}}
.frame{position:absolute;inset:0;opacity:0;transition:opacity .55s ease}
.frame.on{opacity:1}
.frame img{width:100%;height:100%;object-fit:cover}
.tint{position:absolute;inset:0;background:linear-gradient(160deg,rgba(74,46,104,.5),rgba(22,15,30,.88))}
.cap{position:absolute;left:0;right:0;bottom:0;padding:24px 26px;z-index:3}
.cap .n{font-family:'JetBrains Mono',monospace;font-size:.65rem;letter-spacing:.18em;color:var(--gold);text-transform:uppercase}
.cap .t{font-size:1.45rem;font-weight:500;letter-spacing:-.03em;color:#fff;margin-top:7px;line-height:1.2}
.cap .ui .ms{font-size:18px;color:var(--gold);flex:none}
.cap .ui{margin-top:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:11px 13px;backdrop-filter:blur(6px);font-size:.81rem;color:#EDE4F5;line-height:1.42;display:flex;gap:9px}
.cap .ui b{color:var(--gold);font-weight:600}
.acts{display:flex;flex-direction:column}
.actx{padding:34px 0;border-bottom:1px solid rgba(255,255,255,.12);opacity:.4;transition:opacity .35s}
.actx.on{opacity:1}
.actx .an{font-family:'JetBrains Mono',monospace;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.actx h3{margin:9px 0 8px}
.actx p{color:var(--on-night-2);font-size:.92rem}

/* split */
.split{display:grid;grid-template-columns:1.02fr .98fr;gap:48px;align-items:center}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:28px}}
.shot{border-radius:15px;overflow:hidden;border:1px solid var(--line);background:var(--sunken)}
.shot img{display:block;width:100%;height:100%;object-fit:cover}
.shot.tall{aspect-ratio:4/5}
.shot.wide{aspect-ratio:16/11}

/* lista numerada compacta */
.steps{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--surface)}
.night .steps{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.14)}
.st{display:grid;grid-template-columns:36px 1fr;gap:13px;padding:12px 17px;border-bottom:1px solid var(--line);align-items:baseline}
.night .st{border-bottom-color:rgba(255,255,255,.1)}
.st:last-child{border-bottom:0}
.st .no{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--plum)}
.night .st .no{color:var(--gold)}
.st .tx{font-size:.9rem;color:var(--ink-2)}
.st .tx b{color:var(--ink);font-weight:600}

.gate{background:var(--accent-surface);border:1px solid var(--line);border-left:3px solid var(--accent-edge);border-radius:4px 13px 13px 4px;padding:20px 24px;display:flex;flex-direction:column;gap:7px}
.gate .lb{font-family:'JetBrains Mono',monospace;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-edge)}
.gate p{color:var(--ink-2);font-size:.91rem}
.gate b{color:var(--ink)}

.pkgs{display:grid;gap:13px;grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(132px,auto)}
@media(max-width:860px){.pkgs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.pkgs{grid-template-columns:1fr}}
.pkg{border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--surface);display:flex;flex-direction:column;gap:6px}
.night .pkg{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.13)}
.pkg .nm{font-size:1rem;font-weight:600;letter-spacing:-.022em}
.pkg .ds{font-size:.82rem;color:var(--ink-2);line-height:1.42}
.pkg .tag{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--plum)}
.pkg.feat{border-color:transparent;background:var(--night);color:var(--on-night);grid-row:span 2;justify-content:space-between;padding:26px;position:relative;overflow:hidden}
.pkg.feat::after{content:'';position:absolute;inset:0;background:radial-gradient(120% 90% at 100% 0%,rgba(115,75,156,.55) 0%,rgba(115,75,156,0) 62%);pointer-events:none}
.pkg.feat>*{position:relative;z-index:1}
.pkg.feat .nm{color:var(--on-night);font-size:1.85rem;font-weight:250;letter-spacing:-.045em;line-height:1.1}
.pkg.feat .ds{font-size:.95rem}
@media(max-width:560px){.pkg.feat{grid-row:auto}}
.pkg.feat .ds{color:var(--on-night-2)}
.pkg.feat .tag{color:var(--accent-edge)}

/* metrica visual */
.stats{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden;grid-template-columns:repeat(auto-fit,minmax(164px,1fr))}
.stat{background:var(--surface);padding:20px}
.night .stats{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.14)}
.night .stat{background:var(--night)}
.stat .v{font-size:2.1rem;font-weight:200;letter-spacing:-.05em;color:var(--plum);line-height:1;font-variant-numeric:tabular-nums}
.night .stat .v{color:var(--gold)}
.stat .l{font-size:.79rem;color:var(--ink-3);margin-top:7px;line-height:1.35}

.reveal{opacity:1;transform:none}
.js-anim .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js-anim .reveal.in{opacity:1;transform:none}

/* chat */
.page-demo .chatbtn{display:none}
.chatbtn{position:fixed;right:20px;bottom:20px;z-index:70;background:var(--plum);color:#fff;border:0;border-radius:999px;padding:12px 19px;font:inherit;font-size:.86rem;font-weight:500;line-height:1;cursor:pointer;display:inline-flex;align-items:center;gap:9px;box-shadow:0 10px 32px -10px rgba(74,46,104,.8)}
.chatbtn .ms{font-size:19px;line-height:1}
.chatw{position:fixed;right:20px;bottom:20px;z-index:71;width:min(370px,calc(100vw - 40px));background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:0 24px 66px -20px rgba(20,12,30,.55);display:none;flex-direction:column;overflow:hidden}
.chatw.open{display:flex}
/* O desafio é VISÍVEL desde a extração do transporte — a versão invisível
   falhava calada. O widget do hCaptcha tem largura fixa (~303px) e o painel é
   estreito: sem este recorte ele vaza a borda arredondada. */
#chatlive-captcha{padding:12px 14px;border-top:1px solid var(--line);background:var(--surface-2);overflow-x:auto}
#chatlive-captcha p{margin:0 0 8px;font-size:.78rem;color:var(--ink-2)}
.chatw.inline{position:relative;right:auto;bottom:auto;width:100%;display:flex;box-shadow:none}
.chd{background:var(--night);color:#fff;padding:13px 15px;display:flex;align-items:center;gap:9px}
.chd .who{font-size:.86rem;font-weight:600;line-height:1.15}
.chd .st2{font-size:.7rem;color:var(--gold);display:flex;align-items:center;gap:5px}
.dot{width:6px;height:6px;border-radius:50%;background:var(--gold);display:inline-block}
.cbd{padding:15px;display:flex;flex-direction:column;gap:10px;height:330px;overflow-y:auto;background:var(--surface-2)}
.chatw.inline .cbd{height:420px}
.msg{max-width:85%;padding:10px 13px;border-radius:13px;font-size:.86rem;line-height:1.45}
.msg.a{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:4px;align-self:flex-start}
.msg.u{background:var(--plum);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.msg.a b{color:var(--plum-ink)}
.slots{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.slot{font-family:'JetBrains Mono',monospace;font-size:.71rem;border:1px solid var(--plum);color:var(--plum);border-radius:7px;padding:4px 9px}
.cft{padding:10px 14px;border-top:1px solid var(--line);font-size:.72rem;color:var(--ink-3);display:flex;justify-content:space-between;gap:10px;align-items:center}
.typing span{display:inline-block;width:5px;height:5px;background:var(--ink-3);border-radius:50%;margin-right:3px;animation:bl 1.1s infinite}
.typing span:nth-child(2){animation-delay:.18s}.typing span:nth-child(3){animation-delay:.36s}
@keyframes bl{0%,60%,100%{opacity:.25}30%{opacity:1}}

/* o que acontece por tras, na subpagina */
.behind{display:flex;flex-direction:column;gap:9px}
.bh{display:grid;grid-template-columns:22px 1fr;gap:11px;align-items:start;padding:11px 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface);opacity:.34;transition:opacity .4s,border-color .4s}
.bh.on{opacity:1;border-color:var(--plum)}
.bh .bt .ms{font-size:16px}
.bh .bi{width:20px;height:20px;border-radius:50%;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;font-size:.62rem;color:var(--ink-3);margin-top:2px}
.bh.on .bi{border-color:var(--plum);color:var(--plum)}
.bh .bt{font-size:.85rem;color:var(--ink-2);line-height:1.42}
.bh .bt b{color:var(--ink);font-weight:600}

footer.ft{background:var(--night);color:var(--on-night-2);padding:56px 0 40px}
footer.ft a{color:var(--gold);text-decoration:none}
.ftgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:36px}
@media(max-width:760px){.ftgrid{grid-template-columns:1fr;gap:24px}}
.ftgrid h4{font-family:'JetBrains Mono',monospace;font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;color:var(--on-night);margin:0 0 11px;font-weight:500}
.ftgrid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:.85rem}
.legal{margin-top:38px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);font-size:.76rem;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}.js-anim .reveal{opacity:1;transform:none}}

/* ---------- mock da sala ---------- */
.room{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--night);box-shadow:0 30px 70px -30px rgba(20,12,30,.6)}
.room-bar{display:flex;align-items:center;gap:8px;padding:11px 15px;background:rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.1)}
.rdot{width:9px;height:9px;border-radius:50%}
.rdot.r{background:#F26D6D}.rdot.y{background:#F5C24E}.rdot.g{background:#6FCF97}
.rtitle{margin-left:10px;font-size:.79rem;color:var(--on-night-2)}
.rrec{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#F26D6D;display:flex;align-items:center;gap:6px}
.recdot{width:7px;height:7px;border-radius:50%;background:#F26D6D;animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.room-body{display:grid;grid-template-columns:1fr 310px;min-height:400px}
@media(max-width:860px){.room-body{grid-template-columns:1fr}}
.room-stage{padding:16px;display:flex;flex-direction:column;gap:14px}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1}
.tile{position:relative;border-radius:11px;overflow:hidden;background:var(--night-2);min-height:190px}
.tile img{width:100%;height:100%;object-fit:cover;opacity:.92}
.tile .who{position:absolute;left:9px;bottom:9px;background:rgba(10,6,16,.72);color:#fff;font-size:.7rem;padding:3px 8px;border-radius:6px;backdrop-filter:blur(4px)}
.room-ctrl{display:flex;gap:9px;justify-content:center;align-items:center}
.ctl .ms{font-size:19px;color:#fff}
.ctl{width:38px;height:38px;border-radius:999px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:.95rem}
.ctl.end{width:auto;padding:0 16px;background:#C6483F;color:#fff;font-size:.78rem;font-weight:500}
.room-side{border-left:1px solid rgba(255,255,255,.1);padding:15px;display:flex;flex-direction:column;gap:10px;background:rgba(255,255,255,.03)}
@media(max-width:860px){.room-side{border-left:0;border-top:1px solid rgba(255,255,255,.1)}}
.rs-tabs{display:flex;gap:6px;margin-bottom:3px}
.rt{font-size:.71rem;padding:5px 10px;border-radius:999px;color:var(--on-night-2);border:1px solid rgba(255,255,255,.15)}
.rt.on{background:var(--gold);color:#3A2A00;border-color:var(--gold);font-weight:600}
.tip{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-left:3px solid var(--gold);border-radius:9px;padding:11px 12px}
.tip.t2{border-left-color:#F0916B}.tip.t3{border-left-color:#7FC9A6}
.tip p{font-size:.79rem;color:#EDE4F5;line-height:1.45;margin-top:5px}
.tip p b{color:var(--gold)}
.tl{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.tl.tlo{color:#F0916B}.tl.tlp{color:#7FC9A6}
.dossie{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:11px;display:flex;flex-direction:column;gap:6px}
.dl{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-night-2);margin-bottom:3px}
.dr{display:flex;justify-content:space-between;gap:10px;font-size:.75rem;color:var(--on-night-2)}
.dr b{color:#fff;font-weight:500}

.afterroom{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:20px}
.ar{border:1px solid var(--line);border-radius:11px;padding:15px 16px;background:var(--surface)}
.ar.gold{border-color:var(--line);border-left:3px solid var(--accent-edge);background:var(--accent-surface);border-radius:4px 11px 11px 4px}
.an2{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:6px}
.ar p{font-size:.86rem;color:var(--ink-2)}
.ar b{color:var(--ink)}

/* ---------- iceberg ---------- */
.berg{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:20px 18px 4px;overflow-x:auto}
.berg svg{display:block;width:100%;height:auto;min-width:680px}
.bergcap{text-align:center;font-size:.92rem;color:var(--ink-3);padding:2px 12px 18px;line-height:1.5}
.bergcap b{color:var(--ink)}
.bob{transform-origin:300px 260px;animation:bob 7s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(9px)}}
.btip{filter:drop-shadow(0 3px 10px rgba(224,178,58,.32))}
.sea{animation:drift 11s linear infinite}
@keyframes drift{to{transform:translateX(-60px)}}
.wline{stroke:var(--plum);stroke-opacity:.45;stroke-width:1.6;stroke-linecap:round}
.blab line{stroke:var(--line-2);stroke-width:1.2}
.blab.deep line{stroke:var(--plum);stroke-opacity:.6}
.bt1{fill:var(--ink);font-size:23px;font-weight:600;font-family:Inter,sans-serif;letter-spacing:-.8px}
.bt2{fill:var(--ink-3);font-size:13px;font-family:Inter,sans-serif}
.bt3{fill:var(--ink);font-size:23px;font-weight:250;font-family:Inter,sans-serif;letter-spacing:-.8px}
.bt4{fill:var(--ink-3);font-size:13px;font-family:Inter,sans-serif}
.bt5{fill:var(--ink-3);font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:2px;text-transform:uppercase}
.bt5.sub{fill:var(--plum)}
.boat{animation:boat 5.4s ease-in-out infinite;transform-origin:0 0}
@keyframes boat{
  0%,100%{transform:translateY(0) rotate(-1.6deg)}
  50%{transform:translateY(5px) rotate(1.6deg)}
}
.hull{fill:var(--plum);fill-opacity:.9}
.hullline{stroke:var(--plum);stroke-width:2;stroke-linecap:round;opacity:.55}
.person .head{fill:var(--ink-2)}
.person .body{fill:var(--ink-2)}
.person .arm{stroke:var(--ink-2);stroke-width:2.6;stroke-linecap:round}
.scope .tube{fill:var(--accent-edge);fill-opacity:.9}
.scope .lens{fill:#fff;fill-opacity:.55;stroke:var(--accent-edge);stroke-width:1.4}
.scope .glint{fill:#fff;opacity:.8;animation:glint 5.4s ease-in-out infinite}
@keyframes glint{0%,100%{opacity:.25}45%{opacity:.9}}
.ripple{fill:none;stroke:var(--plum);stroke-opacity:.3;stroke-width:1.2}
.r1{animation:rip 5.4s ease-in-out infinite}
.r2{animation:rip 5.4s ease-in-out .5s infinite}
@keyframes rip{0%,100%{opacity:.5;transform:scaleX(1)}50%{opacity:.15;transform:scaleX(1.14)}}
.ripple{transform-origin:0 7px}
.bt6{fill:var(--ink-3);font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:1.8px;text-transform:uppercase}
@media (prefers-reduced-motion: reduce){.boat,.glint,.r1,.r2{animation:none}}
@media (prefers-reduced-motion: reduce){.bob,.sea{animation:none}}

/* ---------- antes e depois ---------- */
.ba{display:grid;grid-template-columns:1fr 44px 1fr;gap:14px;align-items:center}
@media(max-width:820px){.ba{grid-template-columns:1fr;gap:10px}.baarrow{transform:rotate(90deg)}}
.bacol{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:20px;display:flex;flex-direction:column;gap:9px}
.bacol.good{border-color:var(--plum);background:var(--plum-wash)}
.bah{font-family:'JetBrains Mono',monospace;font-size:.63rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px}
.bacol.good .bah{color:var(--plum-ink)}
.bal{display:grid;grid-template-columns:20px 1fr;gap:11px;font-size:.88rem;color:var(--ink-2);align-items:baseline}
.bn{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--ink-3)}
.bacol.good .bn{color:var(--plum)}
.bafoot{margin-top:8px;padding-top:11px;border-top:1px solid var(--line);font-size:.85rem;color:var(--ink-3)}
.bafoot b{color:var(--ink);font-size:1.05rem;font-weight:600}
.bacol.good .bafoot b{color:var(--plum-ink)}
.baarrow{text-align:center;color:var(--ink-3);font-size:1.4rem}

/* ---------- frentes ---------- */
.fr{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:820px){.fr{grid-template-columns:1fr}}
.frcol{border:1px solid var(--line);border-radius:15px;padding:22px;background:var(--surface);display:flex;flex-direction:column;gap:14px}
.frcol.dark{background:var(--night);border-color:rgba(255,255,255,.14)}
.frh{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;color:var(--plum);display:flex;justify-content:space-between;gap:10px}
.frh span{color:var(--ink-3);text-transform:none;letter-spacing:0;font-family:Inter,sans-serif;font-size:.72rem}
.frcol.dark .frh{color:var(--gold)}
.frcol.dark .frh span{color:var(--on-night-2)}
.frit{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start}
.fi .ms{font-size:20px;color:var(--plum)}
.frcol.dark .fi .ms{color:var(--gold)}
.frit b{font-size:.95rem;font-weight:600;letter-spacing:-.02em;display:block}
.frit p{font-size:.83rem;color:var(--ink-2);line-height:1.45;margin-top:3px}
.frcol.dark .frit b{color:var(--on-night)}
.frcol.dark .frit p{color:var(--on-night-2)}

/* ---------- areas + escada ---------- */
.area{border:1px solid var(--line);border-radius:13px;padding:19px;background:var(--surface);display:flex;flex-direction:column;gap:6px}
.ai .ms{font-size:22px;color:var(--plum)}
.area b{font-size:1rem;font-weight:600;letter-spacing:-.02em}
.area p{font-size:.85rem;color:var(--ink-2);line-height:1.45}
.ladder{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:34px}
@media(max-width:760px){.ladder{grid-template-columns:1fr}}
.lstep{border:1px solid var(--line);border-radius:13px;padding:19px;background:var(--surface)}
.lstep.on{border-color:var(--line);border-left:3px solid var(--accent-edge);background:var(--accent-surface);border-radius:4px 13px 13px 4px}
.ln{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:7px}
.lstep.on .ln{color:var(--accent-edge)}
.lstep b{font-size:1.15rem;font-weight:250;letter-spacing:-.035em;display:block;margin-bottom:5px}
.lstep p{font-size:.85rem;color:var(--ink-2);line-height:1.45}


/* ---------- o rio: correntes que desaguam no mesmo lago ---------- */
.flowbox{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:24px 20px 8px;overflow-x:auto}
.flowbox svg{display:block;width:100%;height:auto;min-width:880px}
.flowcap{font-size:.9rem;color:var(--ink-3);text-align:center;padding:6px 12px 18px;line-height:1.5}
.flowcap b{color:var(--ink)}
/* o leito e a agua larga; a veia e a correnteza no meio dela */
.leito use{fill:none;stroke:var(--plum);stroke-opacity:.16;stroke-width:13;stroke-linecap:round}
.leito.quieto use{stroke:var(--accent-edge);stroke-opacity:.2;stroke-width:11}
.veia use{fill:none;stroke:var(--plum);stroke-opacity:.55;stroke-width:1.6;stroke-linecap:round}
.veia.quieto use{stroke:var(--accent-edge);stroke-opacity:.95;stroke-width:1.6;stroke-dasharray:6 6;animation:correnteza 3.4s linear infinite}
@keyframes correnteza{to{stroke-dashoffset:-24}}
.lago{fill:url(#lago);filter:drop-shadow(0 10px 26px rgba(64,38,95,.28))}
.lagoNome{fill:#fff;font-family:Inter,sans-serif;font-size:27px;font-weight:250;text-anchor:middle;letter-spacing:-1.1px}
.lagoVerbo{fill:rgba(255,255,255,.66);font-family:'JetBrains Mono',monospace;font-size:10px;text-anchor:middle;letter-spacing:2.2px;text-transform:uppercase}
.g1{fill:var(--plum)}
.g2{fill:var(--accent-edge)}
.g3{fill:var(--plum);opacity:.85}
.rot text{fill:var(--ink);font-family:Inter,sans-serif;font-size:15px;font-weight:450;letter-spacing:-.25px}
.rot circle{fill:var(--plum)}
.rot.quieto circle{fill:var(--accent-edge)}
.rot.quieto text{fill:var(--ink-2)}
.rio-hd{fill:var(--ink-3);font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:2.1px;text-transform:uppercase}
.rio-hd.quieto{fill:var(--accent-edge)}
@media (prefers-reduced-motion: reduce){.gotas{display:none}.veia.quieto use{animation:none}}

/* hero de subpagina com video ao fundo */
.subhero{position:relative;min-height:56svh;display:flex;align-items:flex-end;background:var(--night);overflow:hidden;margin-bottom:0}
.subhero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.subhero .veil{background:linear-gradient(180deg,rgba(22,15,30,.9) 0%,rgba(22,15,30,.55) 40%,rgba(22,15,30,.94) 100%),
  radial-gradient(110% 80% at 8% 90%,rgba(115,75,156,.6) 0%,rgba(115,75,156,0) 62%)}
.subhero .shin{position:relative;z-index:2;width:100%;padding:0 0 44px}
.subhero h2{color:var(--on-night);max-width:19ch}
.subhero .lead{color:var(--on-night-2);max-width:50ch;margin-top:14px}
@media (prefers-reduced-motion: reduce){.fl-dots{display:none}.subhero video{display:none}}


/* ---------- perguntas e respostas ---------- */
.qa{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
.qi{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:26px 28px;border-bottom:1px solid var(--line);align-items:start}
.qi:last-child{border-bottom:0}
.qn{font-family:'JetBrains Mono',monospace;font-size:1.5rem;font-weight:400;color:var(--line-2);line-height:1;padding-top:3px}
.qi h3{margin-bottom:8px;font-size:1.12rem}
.qi p{font-size:.95rem;color:var(--ink-2);line-height:1.55}
.qi p b{color:var(--ink);font-weight:600}
.qf{display:block;margin-top:10px;font-size:.84rem;color:var(--ink-3);border-left:2px solid var(--accent-edge);padding-left:12px}
@media(max-width:620px){.qi{grid-template-columns:1fr;gap:8px;padding:22px}}

.pillars{display:grid;gap:13px;grid-template-columns:repeat(auto-fit,minmax(226px,1fr));margin-top:22px}
.pil{border:1px solid var(--line);border-radius:13px;padding:20px;background:var(--surface-2);display:flex;flex-direction:column;gap:7px}
.pil .ms{font-size:24px;color:var(--plum)}
.pil b{font-size:.98rem;font-weight:600;letter-spacing:-.02em}
.pil p{font-size:.85rem;color:var(--ink-2);line-height:1.45}



/* ---------- areas: mansory com manifesto ---------- */
.areas{display:grid;gap:13px;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(148px,auto)}
@media(max-width:1020px){.areas{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.areas{grid-template-columns:1fr}}
.area.manifesto{grid-row:span 2;background:var(--night);border-color:transparent;color:var(--on-night);
  position:relative;overflow:hidden;justify-content:space-between;padding:26px}
.area.manifesto::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(130% 95% at 100% 0%,rgba(115,75,156,.6) 0%,rgba(115,75,156,0) 62%)}
.area.manifesto>*{position:relative;z-index:1}
.mtag{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-edge)}
.area.manifesto b{font-size:1.6rem;font-weight:250;letter-spacing:-.045em;line-height:1.12;color:var(--on-night)}
.area.manifesto p{color:var(--on-night-2);font-size:.88rem}
.mnum{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.1em;color:var(--on-night-2);
  border-top:1px solid rgba(255,255,255,.16);padding-top:12px;line-height:1.7}
.mnum i{color:var(--accent-edge);font-style:normal}
@media(max-width:560px){.area.manifesto{grid-row:auto}}

/* ---------- setores: lista com fio, ritmo diferente do card ---------- */
.setores.lista{display:block;border-top:1px solid var(--line)}
.setrow{display:grid;grid-template-columns:38px 190px 1fr auto;gap:18px;align-items:baseline;
  padding:17px 4px;border-bottom:1px solid var(--line)}
.setrow:hover{background:var(--surface-2)}
.si{align-self:center}
.si .ms{font-size:21px;color:var(--plum)}
.setrow b{font-size:1rem;font-weight:600;letter-spacing:-.02em}
.setrow p{font-size:.88rem;color:var(--ink-2);line-height:1.5}
.sb{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.08em;color:var(--accent-edge);
  white-space:nowrap;align-self:center}
.sb.vazio{width:1px}
@media(max-width:820px){
  .setrow{grid-template-columns:38px 1fr;gap:6px 16px;padding:16px 4px}
  .setrow b{grid-column:2}
  .setrow p{grid-column:2}
  .sb{grid-column:2;align-self:start}
}


/* ---------- dossie: a ficha que entra na reuniao ---------- */
.dossie-bloco{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-top:44px}
@media(max-width:900px){.dossie-bloco{grid-template-columns:1fr;gap:28px}}
.db-h{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:250;letter-spacing:-.04em;line-height:1.14;margin:13px 0 16px}
.db-txt>p{font-size:.98rem;color:var(--ink-2);line-height:1.6}
.db-lista{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:13px}
.db-lista li{font-size:.92rem;color:var(--ink-2);line-height:1.5;padding-left:18px;position:relative}
.db-lista li::before{content:'';position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--plum)}
.db-lista b{color:var(--ink);font-weight:600}
.db-nota{margin-top:18px;font-size:.85rem;color:var(--ink-3);border-left:2px solid var(--accent-edge);padding-left:13px;line-height:1.5}
.db-card{background:var(--night);border-radius:16px;padding:6px 0 0;overflow:hidden;
  box-shadow:0 26px 60px -28px rgba(20,12,30,.6)}
.db-top{display:flex;align-items:center;gap:9px;padding:15px 20px 13px;color:#fff;font-size:.86rem;font-weight:600;
  border-bottom:1px solid rgba(255,255,255,.12)}
.db-top .ms{font-size:19px;color:var(--accent-edge)}
.db-live{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-edge);font-weight:400}
.db-row{display:grid;grid-template-columns:118px 1fr;gap:14px;padding:11px 20px;border-bottom:1px solid rgba(255,255,255,.07)}
.db-k{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.45);padding-top:2px}
.db-v{font-size:.87rem;color:#EDE4F5;line-height:1.45}
.db-foot{display:flex;align-items:center;gap:8px;padding:13px 20px;font-size:.76rem;color:rgba(255,255,255,.5);
  background:rgba(255,255,255,.04)}
.db-foot .ms{font-size:15px}
@media(max-width:520px){.db-row{grid-template-columns:1fr;gap:3px}}


/* ==========================================================================
   MOBILE FIRST — passada dedicada. O site nasceu desktop; aqui ele aprende
   a caber. Regra: nada de rolagem horizontal, nada de alvo menor que 44px.
   ========================================================================== */

/* base de toque e de texto em celular */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-wrap:break-word;-webkit-tap-highlight-color:rgba(115,75,156,.18)}
button,a,summary{touch-action:manipulation}

/* as duas versoes dos diagramas: SVG no desktop, pilha no celular */
.rio-mob,.berg-mob{display:none}

@media(max-width:760px){
  /* o SVG do rio exige 880px de largura — no celular ele sai de cena */
  .flowbox svg{display:none}
  .flowbox{padding:18px 16px 4px;overflow:visible}
  .rio-mob{display:flex;flex-direction:column;gap:12px}
  .rm-bloco{border:1px solid var(--line);border-radius:14px;padding:15px 16px;background:var(--surface-2)}
  .rm-bloco.quieto{background:transparent;border-style:dashed;border-color:var(--accent-edge)}
  .rm-bloco.saida{background:var(--plum-wash);border-color:transparent}
  .rm-hd{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:11px}
  .rm-hd.quieto{color:var(--accent-edge)}
  .rm-chips{display:flex;flex-wrap:wrap;gap:7px}
  .rm-chips span{font-size:.85rem;padding:7px 13px;border-radius:999px;background:var(--surface);border:1px solid var(--line-2);color:var(--ink)}
  .rm-chips.q span{border-color:var(--accent-edge);border-style:dashed;background:transparent}
  .rm-chips.s span{background:var(--surface);border-color:transparent;color:var(--plum-ink);font-weight:500}
  .rm-seta{text-align:center;color:var(--plum);line-height:1}
  .rm-seta .ms{font-size:22px}
  .rm-lago{background:linear-gradient(135deg,#8A63B4,#40265F);color:#fff;border-radius:16px;padding:18px;text-align:center}
  .rm-lago b{display:block;font-size:1.5rem;font-weight:250;letter-spacing:-.045em}
  .rm-lago small{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.7)}

  /* o iceberg fica, cortado pela direita; os rotulos viram texto de verdade */
  .berg svg{min-width:0;aspect-ratio:520/540}
  .blab{display:none}
  .berg-mob{display:flex;flex-direction:column;gap:10px;padding:16px 4px 0}
  .bm{border-radius:13px;padding:15px 17px}
  .bm.topo{background:var(--surface-2);border-left:3px solid var(--accent-edge)}
  .bm.fundo{background:linear-gradient(160deg,#8A63B4,#4E2F72);color:#fff}
  .bm-t{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:7px}
  .bm.fundo .bm-t{color:rgba(255,255,255,.6)}
  .bm b{display:block;font-size:1.18rem;font-weight:500;letter-spacing:-.03em;line-height:1.3}
  .bm i{display:block;margin-top:6px;font-style:normal;font-size:.82rem;color:var(--ink-3)}
  .bm.fundo i{color:rgba(255,255,255,.65)}
}

/* alvos de toque: dedo nao acerta 33px */
@media(pointer:coarse){
  .btn{min-height:44px;padding:12px 18px}
  .tglr,.burger{width:44px;height:44px}
  .chatbtn{min-height:48px}
  .nav .links a.lnk{min-height:44px;display:flex;align-items:center}
  .ctl{width:44px;height:44px}
  .slot{padding:8px 12px}
}

/* celular: respiro menor, tipo menor, nada estourando */
@media(max-width:620px){
  .wrap{padding:0 18px}
  .nav-in{padding:12px 16px;gap:12px}
  h1{font-size:clamp(2.05rem,8.4vw,2.6rem);letter-spacing:-.04em}
  h1.ph{font-size:clamp(1.55rem,6.6vw,2rem)}
  h2{font-size:clamp(1.5rem,6vw,1.9rem)}
  .pad{padding:56px 0}
  .hero .sub,.lead{font-size:.98rem}
  .cta{gap:9px}
  .cta .btn{flex:1 1 auto;justify-content:center}
  .chanstrip div{flex:1 1 45%;padding:13px 12px 0}
  .chanstrip div:nth-child(2n){border-right:0}
  .tiles{grid-template-columns:1fr}
  .tile{min-height:150px}
  .chatw.inline .cbd{height:330px}
  .stage{height:46vh}
  .cap{padding:18px 18px}
  .cap .t{font-size:1.18rem}
  .cap .ui{font-size:.76rem;padding:9px 11px}
  .actx{padding:26px 0}
  .qn{font-size:1.15rem}
  .shead{margin-bottom:28px;gap:11px}
  .flowcap,.bergcap{font-size:.85rem;text-align:left}
  .stat .v{font-size:1.75rem}
  .db-card{border-radius:14px}
  .legal{font-size:.72rem}
}

/* o painel do menu precisa de fundo proprio: no topo do hero a barra e transparente */
.nav.open{background:var(--surface);border-bottom:1px solid var(--line)}
.nav.open .brand,.nav.open a.lnk{color:var(--ink)}
.nav.open .tglr,.nav.open .burger{color:var(--ink-2);border-color:var(--line-2)}


/* piso tipografico do celular — medido na simulacao de 414px:
   texto de leitura caia a 12,6px e rotulo mono a 9,6px. Em tela de mao isso
   nao se le, e o visitante nao reclama: ele sai. */
@media(max-width:620px){
  .cd,.ds,.bt,.db-v,.card p,.area p,.setrow p,.pkg .ds,.act p,.actx p,.qi p,
  .pil p,.frit p,.db-lista li,.tx,.st .tx,.set p,.lstep p,.gate p,.msg{font-size:.94rem;line-height:1.5}
  .flowcap,.bergcap,.db-nota,.qf,.stat .l,.cft,.legal,.ftgrid ul{font-size:.86rem}
  .kicker,.ch,.tag,.dl,.db-k,.an2,.bm-t,.rm-hd,.sb,.mtag,.no,.bn,.lb,.frh,
  .ln,.bah,.an,.n,.ftgrid h4,.rt,.slot,.db-live,.qn{font-size:.71rem;letter-spacing:.11em}
  .qn{font-size:1.1rem;letter-spacing:0}
  .no,.bn{letter-spacing:0}
  .bm b{font-size:1.1rem}
  .rm-chips span{font-size:.9rem}
}


/* correcao de especificidade: `.cap .n` (0,2,0) vencia o `.n` (0,1,0) do piso.
   Aqui os seletores casam a especificidade do original, um a um. */
@media(max-width:620px){
  .cap .n,.stage .cap .n,.actx .an,.gate .lb,.pkg .tag,.area .mtag,.setrow .sb,
  .db-card .db-k,.frcol .frh,.lstep .ln,.bacol .bah,.chd .st2,.rm-bloco .rm-hd,
  .bm .bm-t,.chanstrip .ch{font-size:.71rem;letter-spacing:.11em}
  .cap .ui,.tip p,.room-side .tip p{font-size:.84rem;line-height:1.45}
  .flowcap,.bergcap,.db-nota,.qf,.stat .l,.cft,.legal,.ftgrid ul,.bh .bt,
  .ftgrid p,.act p{font-size:.88rem}
  .qi .qf{font-size:.86rem}
}


/* ---------- recortes: o que se liga e o que fica desligado ---------- */
.lnk-inline{color:var(--plum);border-bottom:1px solid currentColor;cursor:pointer;font-weight:500}
.lnk-inline:hover{color:var(--plum-ink)}
.recortes{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
@media(max-width:820px){.recortes{grid-template-columns:1fr}}
.rc{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:22px;
  display:flex;flex-direction:column;gap:13px}
.rc.destaque{border-color:var(--accent-edge);border-left-width:3px}
.rc-quem{font-family:'JetBrains Mono',monospace;font-size:.63rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3)}
.rc.destaque .rc-quem{color:var(--accent-edge)}
.rc-dor{font-size:1.02rem;line-height:1.42;color:var(--ink);font-weight:500;letter-spacing:-.02em}
.rc-set{display:flex;flex-direction:column;gap:7px}
.rc-t{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--plum)}
.rc-set.off .rc-t{color:var(--ink-3)}
.rc-chips{display:flex;flex-wrap:wrap;gap:6px}
.rc-chips span{font-size:.81rem;padding:5px 11px;border-radius:999px;
  background:var(--plum-wash);color:var(--plum-ink);border:1px solid transparent}
.rc-chips.off span{background:transparent;color:var(--ink-3);border:1px dashed var(--line-2);
  text-decoration:line-through;text-decoration-color:var(--line-2)}
.rc-fim{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);
  font-size:.86rem;color:var(--ink-2);line-height:1.45}
.rc-fim b{color:var(--ink)}


/* ---------- combinacoes: A + B -> resultado ---------- */
.combo-head{margin:44px 0 20px;max-width:62ch}
.ch-h{font-size:clamp(1.35rem,2.4vw,1.85rem);font-weight:250;letter-spacing:-.04em;line-height:1.16;margin:12px 0 12px}
.combo-head p{font-size:.98rem;color:var(--ink-2);line-height:1.6}
.combo-head b{color:var(--ink)}
.combos{display:flex;flex-direction:column;gap:10px}
.cb{display:grid;grid-template-columns:auto auto auto auto 1fr;gap:12px;align-items:center;
  background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:16px 20px}
.cb-a,.cb-b{font-size:.92rem;font-weight:500;color:var(--ink);white-space:nowrap;
  background:var(--surface-2);border-radius:999px;padding:6px 13px}
.cb-b{background:var(--plum-wash);color:var(--plum-ink)}
.cb-op{font-size:1.05rem;color:var(--ink-3);font-weight:300}
.cb-eq{display:inline-flex;color:var(--accent-edge)}
.cb-eq .ms{font-size:20px}
.cb-r{font-size:.92rem;color:var(--ink-2);line-height:1.45}
.cb-r b{color:var(--ink);font-weight:600}
@media(max-width:900px){
  .cb{grid-template-columns:auto auto auto;row-gap:10px}
  .cb-eq{display:none}
  .cb-r{grid-column:1 / -1;border-top:1px solid var(--line);padding-top:11px}
}
@media(max-width:520px){
  .cb{grid-template-columns:1fr;padding:15px 16px}
  .cb-op{display:none}
  .cb-a,.cb-b{white-space:normal;text-align:center}
}


/* ---------- as tres travas + perguntas ---------- */
.tres{display:grid;gap:14px;grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.tres{grid-template-columns:1fr}}
.tr{background:var(--surface-2);border:1px solid var(--line);border-radius:15px;padding:24px;
  display:flex;flex-direction:column;gap:11px}
.tr-q{font-size:1.22rem;font-weight:250;letter-spacing:-.035em;color:var(--ink);line-height:1.2}
.tr p{font-size:.94rem;color:var(--ink-2);line-height:1.55}
.tr p b{color:var(--ink);font-weight:600}
.tr-a{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);font-size:.85rem;
  color:var(--ink-3);line-height:1.45}
.faq{margin-top:40px;border-top:1px solid var(--line)}
.faq-h{font-size:1.05rem;font-weight:600;letter-spacing:-.02em;padding:24px 0 6px}
.fq{padding:16px 0;border-bottom:1px solid var(--line)}
.fq b{display:block;font-size:1rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);margin-bottom:6px}
.fq p{font-size:.94rem;color:var(--ink-2);line-height:1.55;max-width:74ch}


/* ---------- matriz de recortes: ficha tecnica, nao card ---------- */
.matriz{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow-x:auto}
.mx-row{display:grid;grid-template-columns:206px repeat(4,1fr);align-items:center;
  border-bottom:1px solid var(--line);min-width:720px}
.mx-row:last-of-type{border-bottom:0}
.mx-lbl{padding:13px 20px;font-size:.9rem;color:var(--ink-2)}
.mx-row:not(.mx-head):not(.mx-foot):hover{background:var(--surface-2)}
.mx-head{background:var(--surface-2);border-bottom:1px solid var(--line-2)}
.mx-head .mx-lbl{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-3)}
.mx-c{padding:15px 14px;text-align:center;border-left:1px solid var(--line)}
.mx-c b{display:block;font-size:.95rem;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.mx-c i{display:block;font-style:normal;font-size:.74rem;color:var(--ink-3);margin-top:2px}
.mx-c.forte{background:var(--night)}
.mx-c.forte b{color:#fff}
.mx-c.forte i{color:var(--accent-edge)}
.mx-v{justify-self:center;width:15px;height:15px;border-radius:50%;position:relative}
.mx-v.on{background:var(--plum)}
.mx-v.depois{background:transparent;border:2px solid var(--plum);
  background-image:linear-gradient(90deg,var(--plum) 50%,transparent 50%)}
.mx-v.off{background:transparent;border:1px solid var(--line-2)}
.mx-v.off::after{content:'';position:absolute;inset:6px 2px;border-top:1px solid var(--line-2)}
.mx-foot{background:var(--surface-2);border-top:1px solid var(--line-2);align-items:stretch}
.mx-foot .mx-lbl{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center}
.mx-f{padding:15px 14px;font-size:.83rem;color:var(--ink-2);line-height:1.45;border-left:1px solid var(--line)}
.mx-f.forte{color:var(--ink);font-weight:500}
.mx-legenda{display:flex;flex-wrap:wrap;gap:18px;align-items:center;padding:14px 20px;
  border-top:1px solid var(--line);font-size:.8rem;color:var(--ink-3);min-width:720px}
.mx-legenda span{display:inline-flex;align-items:center;gap:7px}
.mx-legenda i.mx-v{justify-self:auto;flex:none}
.mx-legenda em{margin-left:auto;font-style:normal;color:var(--ink);font-weight:500}
@media(max-width:820px){
  .matriz{overflow-x:auto}
  .mx-legenda em{margin-left:0;width:100%;padding-top:6px}
}


/* Rótulo só para leitor de tela. O campo do chat precisa de label; mostrá-lo
   quebraria a linha do rodapé. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Resposta do agente em Markdown. O balão é estreito: lista e parágrafo
   precisam de espaçamento próprio, senão tudo cola e vira bloco só. */
.msg p{margin:0}
.msg p + p,.msg p + ul,.msg p + ol,.msg ul + p,.msg ol + p{margin-top:8px}
.msg ul,.msg ol{margin:0;padding-left:19px;display:flex;flex-direction:column;gap:4px}
.msg li{line-height:1.45}
.msg code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.82em;
  background:var(--sunken);border-radius:4px;padding:1px 5px}
.msg.u code{background:rgba(255,255,255,.18)}
.msg a{text-decoration:underline;text-underline-offset:2px}
.msg .md-h{margin-top:10px}
.msg .md-h:first-child{margin-top:0}

/* Portão de identificação do chat */
.cgate{padding:16px 15px;display:flex;flex-direction:column;gap:9px;background:var(--surface-2)}
.cgate-h{margin:0 0 3px;font-size:.83rem;line-height:1.45;color:var(--ink-2)}
.cgate input{border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;
  font-size:.86rem;background:var(--surface);color:var(--ink);width:100%}
.cgate input:focus-visible{outline:2px solid var(--plum);outline-offset:1px}
.cgate input[aria-invalid="true"]{border-color:#C0392B}
.cgate .btn{justify-content:center;width:100%}
.cgate-erro{margin:0;font-size:.78rem;color:#C0392B}
.cgate-nota{margin:2px 0 0;font-size:.71rem;line-height:1.4;color:var(--ink-3)}

/* `[hidden]` só vale se ninguém declarar `display` depois. `.cbd{display:flex}`
   ganha por especificidade e o elemento "escondido" continua visível — foi
   assim que o corpo do chat apareceu embaixo do portão de identificação. */
[hidden]{display:none !important}
