/* KromaSystem — folha de estilo compartilhada */
@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/inter-Regular.woff) format("woff")}
@font-face{font-family:"Inter";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/inter-Medium.woff) format("woff")}
@font-face{font-family:"Inter";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/inter-SemiBold.woff) format("woff")}
@font-face{font-family:"Inter";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/inter-Bold.woff) format("woff")}
:root{
  color-scheme:dark;
  --bg:#0A1220;--bg2:#101A2C;--ink:#EAF0FA;--ink2:#B3C0D4;--mute:#8A99B1;--line:#22304A;
  --brand:#6B97FF;--brand-ink:#06112A;--brand-soft:#14254A;
  --deep:#060C17;--deep2:#0E1A30;--on-deep:#EAF0FA;--on-deep2:#A9B8D0;--line-deep:#1E3254;
  --c1:#22B8E8;--c2:#E5457F;--c3:#F5A524;--c4:#7B5CF0;--c5:#2BC48A;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
  --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"Cascadia Mono",Menlo,Consolas,monospace;
  --gut:max(20px,env(safe-area-inset-left,0px));
  --gutr:max(20px,env(safe-area-inset-right,0px));
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--font);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}
h1,h2,h3,h4{margin:0;line-height:1.15;letter-spacing:-.015em;text-wrap:balance;font-weight:600}
h1{font-size:clamp(2.1rem,4.6vw,3.5rem);letter-spacing:-.025em}
h2{font-size:clamp(1.6rem,3vw,2.3rem)}
h3,.h3{font-size:1.15rem;letter-spacing:-.01em}
p{margin:0}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gutr)}
.sec{padding-block:clamp(56px,8vw,96px)}
.sec.alt{background:var(--bg2)}
.lead{font-size:clamp(1.05rem,1.5vw,1.2rem);color:var(--ink2);max-width:60ch}
.mut{color:var(--mute)}
.mono{font-family:var(--mono)}
.sec-head{display:grid;gap:14px;max-width:760px;margin-bottom:44px}
.sec-head p{color:var(--ink2);max-width:62ch}

/* acessibilidade */
.skip{position:absolute;left:-9999px;top:8px;background:var(--brand);color:var(--brand-ink);padding:10px 16px;border-radius:8px;z-index:300;font-weight:600}
.skip:focus{left:12px}
/* barra superior */
.topbar{background:var(--deep);color:var(--on-deep2);font-size:.8rem}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;padding-block:7px;flex-wrap:wrap}
.topbar a{color:var(--on-deep);}
.topbar .st{display:inline-flex;align-items:center;gap:8px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--c5);box-shadow:0 0 0 0 rgba(43,196,138,.6);animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 7px rgba(43,196,138,0)}100%{box-shadow:0 0 0 0 rgba(43,196,138,0)}}

/* cabeçalho */
.hd{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.hd .wrap{display:flex;align-items:center;gap:28px;height:68px}
.brand{display:flex;align-items:center;gap:11px;color:var(--ink);font-weight:600;font-size:1.12rem;letter-spacing:-.02em}
.brand:hover{text-decoration:none}
.brand .w{display:flex;flex-direction:column;line-height:1}.brand .w b{font-weight:700;font-size:1.45rem;letter-spacing:-.03em}.brand .w span{font-size:.64rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--mute);margin-top:3px}
.logo{width:42px;height:42px;flex:none}
.nav{display:flex;gap:4px;margin-left:auto;align-items:center}
.nav a{color:var(--ink2);font-size:.95rem;padding:8px 13px;border-radius:6px;font-weight:500}
.nav a:hover{color:var(--ink);background:var(--bg2);text-decoration:none}
.nav a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--brand);border-radius:0}
.hd-tools{display:flex;gap:10px;align-items:center}
.ibtn{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);background:transparent;color:var(--ink2);border-radius:8px;cursor:pointer}
.ibtn:hover{background:var(--bg2);color:var(--ink)}
.ibtn svg{width:18px;height:18px}
.ibtn .i-sun,.ibtn .i-moon{display:none}
.burger{display:none}
@media (max-width:1100px){
  .burger{display:grid}
  .hd .wrap{gap:12px}
  .hd-tools{margin-left:auto}
  .nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px var(--gutr) 16px var(--gut);display:none;margin:0}
  .nav.open{display:flex}
  .nav a{padding:13px 4px;border-radius:0;border-bottom:1px solid var(--line)}
  .nav a[aria-current="page"]{box-shadow:none;color:var(--brand)}
  .hd .hd-cta{display:none}
}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 22px;border-radius:8px;font:500 .95rem/1 var(--font);border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s}
.btn:hover{text-decoration:none}
.btn-p{background:var(--brand);color:var(--brand-ink)}
.btn-p:hover{filter:brightness(1.1)}
.btn-o{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-o:hover{background:var(--bg2);border-color:var(--mute)}
.btn-w{background:#fff;color:#0B1B33}.btn-w:hover{background:#E8EFFE}
.btn-l{background:transparent;color:#EAF0FA;border-color:var(--line-deep)}.btn-l:hover{background:var(--deep2)}
.btns{display:flex;gap:12px;flex-wrap:wrap}
.link{font-weight:500;display:inline-flex;gap:6px;align-items:center}

/* hero */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:56px 56px;opacity:.45;-webkit-mask-image:radial-gradient(70% 90% at 75% 40%,#000,transparent 75%);mask-image:radial-gradient(70% 90% at 75% 40%,#000,transparent 75%)}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center;padding-block:clamp(48px,7vw,88px)}
.hero h1{margin-bottom:22px}
.hero .lead{margin-bottom:32px}
.spec{height:4px;width:96px;border-radius:2px;margin-bottom:26px;background:linear-gradient(90deg,var(--c1) 0 25%,var(--c2) 25% 50%,var(--c3) 50% 75%,var(--c4) 75%)}
@media (max-width:960px){.hero .wrap{grid-template-columns:minmax(0,1fr);gap:40px}}

/* painel técnico (home) */
.tech{background:var(--deep);border:1px solid var(--line-deep);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;color:var(--on-deep)}
.tech-h{display:flex;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid var(--line-deep);font:.76rem var(--mono);color:var(--on-deep2)}
.tech-h i{width:9px;height:9px;border-radius:50%;background:#33507F}
.tech-h span{margin-left:auto}
.tech svg{display:block;width:100%;height:auto}
.n rect{fill:var(--deep2);stroke:var(--line-deep)}
.n text{fill:var(--on-deep);font:500 12px var(--mono)}
.n .s{fill:var(--on-deep2);font-size:10px;font-weight:400}
.ln{stroke:#33507F;stroke-width:1.4;stroke-dasharray:3 4;fill:none}
.pk{fill:var(--c1)}.pk.b{fill:var(--c3)}.pk.c{fill:var(--c5)}
.term{border-top:1px solid var(--line-deep);padding:14px 18px 16px;font:.8rem/1.75 var(--mono);color:var(--on-deep2)}
.term div{opacity:0;animation:line .01s forwards}
.term div:nth-child(1){animation-delay:.4s}.term div:nth-child(2){animation-delay:1s}.term div:nth-child(3){animation-delay:1.6s}.term div:nth-child(4){animation-delay:2.2s}.term div:nth-child(5){animation-delay:2.8s}
@keyframes line{to{opacity:1}}
.term .ok{color:var(--c5)}.term .p{color:var(--c1)}.term b{color:var(--on-deep);font-weight:500}
.cur{display:inline-block;width:7px;height:14px;background:var(--on-deep2);vertical-align:-2px;animation:bl 1s steps(2) infinite}
@keyframes bl{50%{opacity:0}}

/* faixa de fatos */
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line)}
.fact{padding:28px 24px 28px 0;display:grid;gap:6px;align-content:start}
.fact+.fact{padding-left:24px;border-left:1px solid var(--line)}
.fact strong{font-size:1.02rem;font-weight:600}
.fact span{color:var(--mute);font-size:.9rem}
@media (max-width:860px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.fact{padding:22px 16px 22px 0}.fact+.fact{padding-left:0;border-left:0}.fact:nth-child(even){padding-left:20px;border-left:1px solid var(--line)}.fact:nth-child(n+3){border-top:1px solid var(--line)}}

/* cartões */
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.cards.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1000px){.cards,.cards.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.cards,.cards.c3,.cards.c2{grid-template-columns:minmax(0,1fr)}}
.card{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:26px;display:flex;flex-direction:column;gap:12px;transition:border-color .15s,box-shadow .15s}
.alt .card{background:var(--bg)}
a.card{color:inherit}a.card:hover{text-decoration:none;border-color:var(--brand);box-shadow:var(--shadow)}
.card p{color:var(--ink2);font-size:.94rem}
.card .link{margin-top:auto;padding-top:6px;font-size:.92rem}
.ico{width:42px;height:42px;border-radius:9px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center}
.ico svg{width:22px;height:22px}
.tag{display:inline-block;font:500 .72rem var(--mono);padding:3px 9px;border-radius:99px;border:1px solid var(--line);color:var(--mute)}
.tag.on{border-color:var(--c5);color:var(--c5)}

/* bloco escuro */
.deep{background:var(--deep);color:var(--on-deep)}
.deep .lead,.deep p{color:var(--on-deep2)}
.deep h2,.deep h3{color:var(--on-deep)}
.deep .tag{border-color:var(--line-deep);color:var(--on-deep2)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:center}
@media (max-width:960px){.split{grid-template-columns:minmax(0,1fr);gap:36px}}
.ticks{list-style:none;padding:0;margin:22px 0 30px;display:grid;gap:11px}
.ticks li{display:flex;gap:11px;align-items:flex-start;color:var(--on-deep2);font-size:.97rem}
.ticks li::before{content:"";flex:none;width:18px;height:18px;margin-top:3px;border-radius:50%;background:var(--c5) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.4 7.7 12 13 6.4' fill='none' stroke='%23062018' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.ticks.lt li{color:var(--ink2)}

/* mock do OdontoSystem */
.mock{background:#F5F7FB;color:#0B1B33;border-radius:12px;overflow:hidden;border:1px solid var(--line-deep);box-shadow:0 20px 50px rgba(0,0,0,.35);font-size:.8rem}
.mock-b{display:flex;gap:6px;padding:10px 14px;background:#E6EBF3;border-bottom:1px solid #D5DCE8}
.mock-b i{width:9px;height:9px;border-radius:50%;background:#B7C2D6}
.mock-m{display:grid;grid-template-columns:120px minmax(0,1fr)}
.mock-s{background:#fff;border-right:1px solid #E1E6EF;padding:14px 10px;display:grid;gap:4px;align-content:start}
.mock-s b{display:flex;align-items:center;gap:7px;font-size:.78rem;margin-bottom:8px}
.mock-s b em{width:16px;height:16px;border-radius:5px;background:#0B4DDB}
.mock-s span{padding:7px 9px;border-radius:6px;color:#5A6A83}
.mock-s span.a{background:#E8EFFE;color:#0B4DDB;font-weight:500}
.mock-c{padding:16px;display:grid;gap:12px}
.kp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.kp div{background:#fff;border:1px solid #E1E6EF;border-radius:8px;padding:10px 12px;display:grid;gap:2px}
.kp small{color:#6B7A93;font-size:.68rem}.kp strong{font-size:1.05rem;font-weight:600;white-space:nowrap}
.bars{background:#fff;border:1px solid #E1E6EF;border-radius:8px;padding:12px;display:flex;align-items:flex-end;gap:8px;height:104px}
.bars i{flex:1;background:#0B4DDB;border-radius:3px 3px 0 0;opacity:.85}
.bars i:nth-child(even){background:#22B8E8}
.rows{display:grid;gap:6px}
.rows div{display:flex;justify-content:space-between;gap:10px;background:#fff;border:1px solid #E1E6EF;border-radius:6px;padding:8px 10px}
.rows span:last-child{color:#2BA37A;font-weight:500;white-space:nowrap}
@media (max-width:560px){.mock-m{grid-template-columns:minmax(0,1fr)}.mock-s{display:none}}

/* stack / chips */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{font:500 .85rem var(--mono);padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink2)}
.chip i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:9px}

/* passos */
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;counter-reset:s;border-top:1px solid var(--line)}
.step{padding:26px 22px 8px 0;display:grid;gap:8px;align-content:start;position:relative}
.step::before{counter-increment:s;content:counter(s,decimal-leading-zero);font:500 .8rem var(--mono);color:var(--brand)}
.step::after{content:"";position:absolute;top:-4px;left:0;width:7px;height:7px;background:var(--brand);border-radius:50%}
.step p{color:var(--ink2);font-size:.92rem}
@media (max-width:900px){.steps{grid-template-columns:minmax(0,1fr);border-top:0;border-left:1px solid var(--line)}.step{padding:0 0 24px 24px}.step::after{top:4px;left:-4px}}

/* tabela */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;min-width:560px;font-size:.93rem}
th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--bg2);font-weight:600;font-size:.82rem;color:var(--ink2)}
tr:last-child td{border-bottom:0}
td:first-child{font-weight:500;white-space:nowrap}
td.m{font-family:var(--mono);font-size:.86rem;color:var(--ink2)}

/* faixa de chamada */
.cta{background:var(--deep);color:var(--on-deep);position:relative;overflow:hidden}
.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;padding-block:clamp(44px,6vw,68px)}
.cta h2{color:var(--on-deep);max-width:22ch}
.cta p{color:var(--on-deep2);margin-top:10px;max-width:48ch}
.cta::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--c1) 0 25%,var(--c2) 25% 50%,var(--c3) 50% 75%,var(--c4) 75%)}

/* cabeçalho de página interna */
.ph{background:var(--bg2);border-bottom:1px solid var(--line)}
.ph .wrap{padding-block:clamp(40px,6vw,72px);display:grid;gap:18px}
.crumb{font:.8rem var(--mono);color:var(--mute)}
.crumb a{color:var(--mute)}
.ph h1{font-size:clamp(2rem,4vw,3rem);max-width:20ch}

/* formulário */
.cgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:48px}
@media (max-width:900px){.cgrid{grid-template-columns:minmax(0,1fr);gap:36px}}
form{display:grid;gap:18px}
.f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:560px){.f2{grid-template-columns:minmax(0,1fr)}}
label{display:grid;gap:7px;font-size:.88rem;font-weight:500}
input,select,textarea{font:400 1rem var(--font);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px 14px;width:100%}
textarea{min-height:140px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.note{font-size:.84rem;color:var(--mute)}
.ch{display:grid;gap:18px;align-content:start}
.ch div{padding:18px 20px;border:1px solid var(--line);border-radius:12px;display:grid;gap:4px}
.ch small{color:var(--mute);font-size:.8rem}
.ch strong{font-weight:500;word-break:break-word}
.cp{background:none;border:0;color:var(--brand);font:500 .85rem var(--font);cursor:pointer;padding:0;justify-self:start}

/* rodapé */
.ft{background:var(--deep);color:var(--on-deep2);font-size:.92rem}
.ft .wrap{padding-block:56px 28px}
.ft-g{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:40px;padding-bottom:40px;border-bottom:1px solid var(--line-deep)}
@media (max-width:860px){.ft-g{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-g>div:first-child{grid-column:1/-1}}
.ft .brand{color:var(--on-deep);margin-bottom:14px}.ft .brand .w span{color:var(--on-deep2)}
.ft .fh{color:var(--on-deep);font-size:.88rem;font-weight:600;margin:0 0 14px}
.ft ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.ft a{color:var(--on-deep2)}.ft a:hover{color:#fff}
.ft-b{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:22px;font-size:.82rem}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.term div{opacity:1}}

/* ===== movimento e vida (leve) ===== */
.progress{position:fixed;left:0;top:0;height:3px;width:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,var(--c1) 0 25%,var(--c2) 25% 50%,var(--c3) 50% 75%,var(--c4) 75%);z-index:200;pointer-events:none}
body{animation:pin .4s ease-out}
@keyframes pin{from{opacity:0}to{opacity:1}}
.js .rv{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease;transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
.hero #net{position:absolute;inset:0;width:100%;height:100%;opacity:.75;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 40%);mask-image:linear-gradient(90deg,transparent 0,#000 40%)}
.hero::before{opacity:.25}
.rot{display:block;width:max-content;max-width:100%;background:linear-gradient(90deg,var(--c1),var(--c4) 55%,var(--c2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;padding-bottom:.08em}
.rot.out{animation:rotout .28s ease-in forwards}.rot.inn{animation:rotin .38s ease-out}
@keyframes rotout{to{opacity:0;transform:translateY(-.35em)}}
@keyframes rotin{from{opacity:0;transform:translateY(.35em)}}
/* brilho que segue o cursor */
.card{position:relative;overflow:hidden}
.card::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--brand) 14%,transparent),transparent 70%)}
a.card:hover::after,.card:hover::after{opacity:1}
a.card:hover .link svg{transform:translateX(4px)}
.link svg,.btn svg{transition:transform .2s}
.btn:hover svg{transform:translateX(3px)}
.btn-p{position:relative;overflow:hidden}
.btn-p::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translateX(-120%)}
.btn-p:hover::after{transform:translateX(120%);transition:transform .7s}
/* faixa de tecnologias */
.mq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-t{display:flex;gap:12px;width:max-content;animation:mq 42s linear infinite;padding-block:4px}
.mq-t .chip{white-space:nowrap}
.mq:hover .mq-t{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}
/* mini planejamento */
.mini{list-style:none;padding:0;margin:14px 0 6px;display:grid;gap:0;position:relative}
.mini li{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:.95rem}
.mini li:first-child{border-top:0}.mini b{font-weight:600;color:var(--brand)}.mini span{color:var(--ink2)}
/* valores (acordeão) */
.vals{display:grid;gap:10px}
.val{border:1px solid var(--line);border-radius:12px;background:var(--bg);transition:border-color .2s}
.val[open]{border-color:var(--brand)}
.val summary{cursor:pointer;list-style:none;padding:18px 22px;font-weight:600;display:flex;justify-content:space-between;align-items:center}
.val summary::-webkit-details-marker{display:none}
.val summary::after{content:"+";font-weight:400;font-size:1.4rem;color:var(--brand);transition:transform .25s}
.val[open] summary::after{transform:rotate(45deg)}
.val p{padding:0 22px 20px;color:var(--ink2);animation:vo .3s ease-out}
@keyframes vo{from{opacity:0;transform:translateY(-4px)}}
/* linha do tempo */
.tl{position:relative;display:grid;gap:28px;padding-left:44px;max-width:980px}
.tl-line{position:absolute;left:11px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl-line i{position:absolute;left:0;top:0;width:100%;height:calc(var(--p,0)*100%);background:linear-gradient(var(--c1),var(--c4),var(--c2))}
.tl-i{position:relative}
.tl-d{position:absolute;left:-44px;top:26px;width:24px;height:24px;border-radius:50%;background:var(--bg);border:2px solid var(--line);transition:border-color .3s,background .3s}
.tl-i.on .tl-d{border-color:var(--brand);background:var(--brand)}
.tl-i.on .tl-d::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--brand);opacity:.0;animation:ring 2.4s infinite}
@keyframes ring{0%{opacity:.5;transform:scale(.6)}100%{opacity:0;transform:scale(1.3)}}
.tl .card{padding:26px 28px}
@media (max-width:620px){.tl{padding-left:34px}.tl-d{left:-34px}.tl-line{left:6px}.mini li{grid-template-columns:80px 1fr}}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none}.mq-t{animation:none}.progress{display:none}}

/* botão flutuante do WhatsApp */
.zap{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:max(18px,env(safe-area-inset-bottom,0px));z-index:60;width:54px;height:54px;border-radius:50%;background:#22c55e;color:#fff;display:grid;place-items:center;box-shadow:0 14px 28px -10px rgba(34,197,94,.8);transition:transform .2s}
.zap svg{width:28px;height:28px}.zap:hover{color:#fff;transform:scale(1.08);text-decoration:none}.zap[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.zap{transition:none}}

/* redes, textos legais, equipe e provas */
.soc{list-style:none;padding:0;margin:22px 0 0;display:flex;gap:10px;flex-wrap:wrap}
.soc a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line,rgba(255,255,255,.14));border-radius:999px;color:var(--ink2);font-size:.9rem;text-decoration:none;transition:color .2s,border-color .2s,background .2s}
.soc a:hover{color:#fff;border-color:var(--c2);background:rgba(229,69,127,.12);text-decoration:none}
.soc a svg{flex:none}
.prose{max-width:72ch}.prose h2{font-size:1.2rem;margin:34px 0 10px}.prose p,.prose li{color:var(--ink2)}
.prose ul{padding-left:20px;display:grid;gap:8px;margin:10px 0}.prose a{text-decoration:underline}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin-bottom:28px}
.stat{border-left:2px solid var(--c1);padding-left:16px;display:grid;gap:4px}.stat strong{font-size:2rem;line-height:1.1}.stat span{color:var(--ink2);font-size:.92rem}
.quote{margin:0}.quote blockquote{margin:0;color:var(--ink);font-size:1.02rem}.quote figcaption{color:var(--mute);font-size:.88rem}
section[hidden]{display:none}

/* equipe: cartão compacto e discreto */
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:20px}
.person{position:relative;overflow:hidden;display:grid;grid-template-columns:96px minmax(0,1fr);gap:22px;align-items:center;max-width:460px;background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:20px 24px;transition:border-color .25s}
.person:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(107,151,255,.12),transparent 65%)}
.person:hover{border-color:#34476a}.person:hover:before{opacity:1}
.pf{width:96px;height:96px;border-radius:50%;padding:2px;background:linear-gradient(135deg,var(--c1),var(--c4),var(--c2))}
.pf img,.pf .av{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid var(--bg)}
.pf .av{display:grid;place-items:center;font-size:1.6rem;font-weight:600;color:#fff;background:var(--bg2)}
.pi{display:grid;gap:3px;justify-items:start}
.pn{font-size:1.1rem;font-weight:600;letter-spacing:-.01em}
.pr{color:var(--mute);font-size:.9rem}
.pb{color:var(--ink2);font-size:.9rem;margin:6px 0 0;max-width:46ch}
.pl{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:.9rem}
.pl .link{font-size:.9rem}
@media (max-width:420px){.person{grid-template-columns:72px minmax(0,1fr);gap:16px;padding:16px}.pf{width:72px;height:72px}}

/* campo anti-robô (invisível para pessoas) */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.note.ok{color:var(--c5)}.note.err{color:#ff8fa8}
form button[disabled]{opacity:.6;cursor:wait}
