/* ============================================================
   VOLKY — DOSSIÊ END-TO-END (portal protegido)
   Website de página única: A Fonte → A Instituição →
   As Vertentes → As Soluções. Herda brand.css (accent warm).
   ============================================================ */

/* ---------- GATE ---------- */
.gate{ position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:
  radial-gradient(120% 80% at 50% -10%, color-mix(in oklab,#C9A24E 10%, transparent), transparent 55%), var(--bg); }
.gate[hidden]{ display:none; }
.gate__box{ width:min(440px, calc(100vw - 48px)); text-align:center; }
.gate__mark{ width:72px; height:72px; margin:0 auto var(--s5); display:block; }
.gate__kick{ font-family:var(--font-mono); font-size:0.66rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--accent); }
.gate__title{ font-family:var(--font-display); font-weight:700; font-size:2.2rem; letter-spacing:-0.01em; margin:var(--s3) 0 var(--s2); }
.gate__sub{ font-size:var(--t-sm); color:var(--text-2); line-height:1.6; max-width:38ch; margin:0 auto; }
.gate__form{ margin-top:var(--s6); display:flex; gap:var(--s2); }
.gate__input{ flex:1; background:var(--surface); border:1px solid var(--line-2); border-radius:var(--r-sm);
  color:var(--text); font-family:var(--font-mono); font-size:0.95rem; letter-spacing:0.18em; text-align:center;
  padding:14px 16px; outline:none; transition:border-color .2s; }
.gate__input:focus{ border-color:var(--accent-line); }
.gate__btn{ background:var(--accent); color:var(--accent-ink); border:0; border-radius:var(--r-sm);
  font-family:var(--font-body); font-weight:600; font-size:0.85rem; letter-spacing:0.06em; padding:14px 22px; cursor:pointer; }
.gate__btn:hover{ background:var(--accent-strong); }
.gate__err{ margin-top:var(--s3); font-family:var(--font-mono); font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase;
  color:#C96A5A; min-height:1.2em; visibility:hidden; }
.gate.is-err .gate__err{ visibility:visible; }
.gate.is-err .gate__input{ border-color:#7A3B31; }
.gate__foot{ margin-top:var(--s7); font-family:var(--font-mono); font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--text-3); line-height:2; }
body.locked{ overflow:hidden; }
body.locked .site{ display:none; }

/* ---------- TOPBAR ---------- */
.topbar{ position:sticky; top:0; z-index:50; display:flex; align-items:center; gap:var(--s5);
  padding:14px clamp(20px,4vw,48px); background:color-mix(in oklab, var(--bg) 86%, transparent);
  backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.topbar__brand{ display:flex; align-items:center; gap:12px; flex:none; }
.topbar__brand svg{ width:26px; height:26px; }
.topbar__brand b{ font-family:var(--font-body); font-weight:700; letter-spacing:0.2em; font-size:0.9rem; color:var(--text); }
.topbar__brand span{ font-family:var(--font-mono); font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--text-3);
  border-left:1px solid var(--line-2); padding-left:12px; }
.topbar__nav{ display:flex; gap:2px; margin-left:auto; overflow-x:auto; scrollbar-width:none; }
.topbar__nav::-webkit-scrollbar{ display:none; }
.topbar__nav a{ font-family:var(--font-mono); font-size:0.64rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--text-2); padding:8px 12px; border-radius:var(--r-pill); white-space:nowrap; transition:color .15s, background .15s; }
.topbar__nav a:hover{ color:var(--text); background:var(--surface); }
.topbar__exit{ flex:none; font-family:var(--font-mono); font-size:0.6rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--text-3); border:1px solid var(--line-2); border-radius:var(--r-pill); padding:6px 14px; cursor:pointer; background:none; }
.topbar__exit:hover{ color:var(--accent); border-color:var(--accent-line); }
@media (max-width:900px){ .topbar__brand span{ display:none; } }

/* ---------- LAYOUT ---------- */
.wrap{ max-width:1240px; margin:0 auto; padding:0 clamp(20px,4vw,48px); }
.dsec{ padding:clamp(72px,9vw,128px) 0; border-top:1px solid var(--line); }
.dsec:first-of-type{ border-top:0; }
.dsec__head{ max-width:840px; margin-bottom:var(--s8); }
.dsec__kick{ font-family:var(--font-mono); font-size:0.7rem; letter-spacing:0.26em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:var(--s4); }
.dsec__kick::before{ content:""; width:42px; height:1px; background:var(--accent-line); }
.dsec__title{ font-family:var(--font-display); font-weight:700; font-size:clamp(2rem,4.6vw,3.4rem); line-height:1.02; letter-spacing:-0.02em; margin:var(--s4) 0; }
.dsec__lead{ font-size:clamp(1.02rem,1.6vw,1.22rem); line-height:1.6; color:var(--text-2); font-weight:300; }
.dsec__lead b{ color:var(--text); font-weight:500; }

/* vertente-tinted section accents */
.dsec[data-v="eng"]{ --vc:#B5683F; --vcs:#CE8A5E; --vc-line:color-mix(in oklab,#B5683F 38%,transparent); }
.dsec[data-v="tec"]{ --vc:#4FC9C4; --vcs:#8FF2EC; --vc-line:color-mix(in oklab,#4FC9C4 34%,transparent); }
.dsec[data-v="cie"]{ --vc:#6D28D9; --vcs:#9D4EFF; --vc-line:color-mix(in oklab,#6D28D9 42%,transparent); }
.dsec[data-v] .dsec__kick{ color:var(--vcs); }
.dsec[data-v] .dsec__kick::before{ background:var(--vc-line); }

/* ---------- HERO ---------- */
.dhero{ position:relative; padding:clamp(80px,11vw,150px) 0 clamp(64px,8vw,110px); overflow:hidden; }
.dhero::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(110% 75% at 50% -15%, color-mix(in oklab,#C9A24E 12%, transparent), transparent 58%); }
.dhero__inner{ position:relative; text-align:center; max-width:880px; margin:0 auto; }
.dhero__mark{ width:84px; height:84px; margin:0 auto var(--s6); display:block; }
.dhero__kick{ font-family:var(--font-mono); font-size:0.7rem; letter-spacing:0.32em; text-transform:uppercase; color:var(--accent); }
.dhero__title{ font-family:var(--font-display); font-weight:700; font-size:clamp(2.6rem,6.5vw,4.8rem); line-height:0.98; letter-spacing:-0.025em; margin:var(--s5) 0; }
.dhero__lead{ font-size:clamp(1.05rem,1.8vw,1.3rem); line-height:1.6; color:var(--text-2); font-weight:300; max-width:62ch; margin:0 auto; }
.dhero__lead b{ color:var(--text); font-weight:500; }
.dhero__conf{ display:inline-flex; align-items:center; gap:10px; margin-top:var(--s7);
  font-family:var(--font-mono); font-size:0.62rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--text-3);
  border:1px solid var(--line-2); border-radius:var(--r-pill); padding:8px 18px; }
.dhero__conf i{ width:6px; height:6px; border-radius:50%; background:var(--accent); }

/* ---------- E2E SPINE (mapa) ---------- */
.e2e{ display:flex; flex-direction:column; align-items:stretch; gap:0; max-width:920px; margin:var(--s8) auto 0; }
.e2e__node{ position:relative; border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); padding:var(--s5) var(--s6);
  display:flex; align-items:center; gap:var(--s5); }
.e2e__node svg{ width:44px; height:44px; flex:none; }
.e2e__role{ font-family:var(--font-mono); font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent); }
.e2e__name{ font-family:var(--font-display); font-weight:700; font-size:1.25rem; margin-top:3px; }
.e2e__d{ font-size:var(--t-sm); color:var(--text-2); margin-top:2px; }
.e2e__link{ display:flex; justify-content:center; padding:6px 0; }
.e2e__link span{ width:1px; height:26px; background:linear-gradient(180deg, var(--accent-line), var(--line-2)); position:relative; }
.e2e__row{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s4); }
@media (max-width:760px){ .e2e__row{ grid-template-columns:1fr; } }
.e2e__v{ border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); padding:var(--s5); text-align:center; }
.e2e__v svg{ width:38px; height:38px; margin:0 auto var(--s3); display:block; }
.e2e__v .nm{ font-family:var(--font-display); font-weight:700; font-size:1.05rem; letter-spacing:0.03em; }
.e2e__v .mt{ font-family:var(--font-mono); font-size:0.58rem; letter-spacing:0.14em; text-transform:uppercase; margin-top:4px; }
.e2e__v .sols{ margin-top:var(--s4); padding-top:var(--s4); border-top:1px dashed var(--line-2);
  display:flex; flex-wrap:wrap; gap:6px; justify-content:center; }
.e2e__v .sols span{ font-family:var(--font-mono); font-size:0.6rem; letter-spacing:0.04em; border:1px solid var(--line-2);
  border-radius:var(--r-pill); padding:3px 10px; color:var(--text-2); }
.e2e__v--eng{ border-color:color-mix(in oklab,#B5683F 30%,var(--line)); } .e2e__v--eng .mt{ color:#CE8A5E; }
.e2e__v--tec{ border-color:color-mix(in oklab,#4FC9C4 26%,var(--line)); } .e2e__v--tec .mt{ color:#8FF2EC; }
.e2e__v--cie{ border-color:color-mix(in oklab,#6D28D9 34%,var(--line)); } .e2e__v--cie .mt{ color:#9D4EFF; }

/* ---------- A FONTE ---------- */
.fonte{ display:grid; grid-template-columns:minmax(280px,420px) 1fr; gap:clamp(28px,5vw,64px); align-items:center; }
@media (max-width:860px){ .fonte{ grid-template-columns:1fr; } }
.fonte__photo{ position:relative; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; background:#0C0A08; }
.fonte__photo img{ width:100%; height:auto; display:block; filter:saturate(0.88) contrast(1.04); }
.fonte__photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(8deg, rgba(10,8,6,.55), transparent 45%); }
.fonte__sig{ position:absolute; left:22px; bottom:16px; width:150px; z-index:2; }
.fonte__sig img{ width:100%; display:block; filter:none; }
.fonte__pts{ display:flex; flex-direction:column; gap:var(--s5); margin-top:var(--s6); }
.fpt{ display:flex; gap:var(--s4); align-items:baseline; }
.fpt b{ font-family:var(--font-mono); font-size:0.7rem; color:var(--accent); flex:none; letter-spacing:0.1em; }
.fpt p{ font-size:var(--t-sm); color:var(--text-2); line-height:1.6; }
.fpt p strong{ color:var(--text); font-weight:500; }

/* ---------- A INSTITUIÇÃO ---------- */
.inst{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s4); }
@media (max-width:860px){ .inst{ grid-template-columns:1fr; } }
.inst__tese{ grid-column:1/-1; border:1px solid var(--accent-line); border-radius:var(--r-md); padding:clamp(28px,4vw,48px);
  background:linear-gradient(110deg, color-mix(in oklab,#C9A24E 8%, var(--surface)), var(--surface)); }
.inst__tese p{ font-family:'Spectral',Georgia,serif; font-size:clamp(1.3rem,2.6vw,1.9rem); line-height:1.35; color:var(--text); max-width:30ch; }
.inst__tese p em{ color:var(--accent-strong); font-style:italic; }
.inst__tese .by{ margin-top:var(--s5); font-family:var(--font-mono); font-size:0.64rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--text-3); }
.icard{ border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); padding:var(--s6); }
.icard h4{ font-family:var(--font-display); font-weight:600; font-size:1.05rem; margin-bottom:var(--s3); }
.icard p{ font-size:var(--t-sm); color:var(--text-2); line-height:1.6; }
.icard p b{ color:var(--text); font-weight:500; }

/* ---------- VERTENTE SECTIONS ---------- */
.vband{ display:flex; align-items:center; gap:var(--s5); border:1px solid var(--vc-line); border-radius:var(--r-md);
  background:linear-gradient(105deg, color-mix(in oklab, var(--vc) 9%, var(--surface)), var(--surface));
  padding:var(--s5) var(--s6); margin-bottom:var(--s7); flex-wrap:wrap; }
.vband svg{ width:48px; height:48px; flex:none; }
.vband__txt{ flex:1; min-width:220px; }
.vband__mat{ font-family:var(--font-mono); font-size:0.62rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--vcs); }
.vband__say{ font-family:'Spectral',Georgia,serif; font-style:italic; font-size:1.15rem; color:var(--text); margin-top:4px; }
.vband__stats{ display:flex; gap:var(--s6); flex-wrap:wrap; }
.vband__stats div{ text-align:right; }
.vband__stats dt{ font-family:var(--font-display); font-weight:700; font-size:1.4rem; color:var(--vcs); }
.vband__stats dd{ font-family:var(--font-mono); font-size:0.58rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-3); margin-top:2px; }

.sols{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s4); }
@media (max-width:880px){ .sols{ grid-template-columns:1fr; } }
.sol{ border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); overflow:hidden;
  display:flex; flex-direction:column; transition:border-color .2s, transform .2s; }
.sol:hover{ border-color:var(--vc-line); transform:translateY(-2px); }
.sol__top{ padding:var(--s5) var(--s5) var(--s4); border-bottom:1px solid var(--line); position:relative; overflow:hidden; min-height:86px;
  display:flex; flex-direction:column; justify-content:flex-end; gap:6px; background:#07080A; }
.sol__glow{ position:absolute; inset:0; background:radial-gradient(120% 120% at 80% 0%, color-mix(in oklab, var(--vc) 18%, transparent), transparent 62%); }
.sol__role{ position:relative; font-family:var(--font-mono); font-size:0.56rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--vcs); }
.sol__name{ position:relative; font-family:var(--font-display); font-weight:700; font-size:1.3rem; letter-spacing:0.01em; }
.sol__body{ padding:var(--s4) var(--s5) var(--s5); display:flex; flex-direction:column; gap:var(--s3); flex:1; }
.sol__what{ font-size:var(--t-sm); color:var(--text-2); line-height:1.55; flex:1; }
.sol__what b{ color:var(--text); font-weight:500; }
.sol__meta{ display:flex; justify-content:space-between; align-items:center; padding-top:var(--s3); border-top:1px dashed var(--line-2);
  font-family:var(--font-mono); font-size:0.58rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-3); }
.sol__meta .st{ color:var(--vcs); }

/* engine strip (tec) */
.engines{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s4); margin-bottom:var(--s4); }
@media (max-width:720px){ .engines{ grid-template-columns:1fr; } }
.engine{ border:1px solid var(--line); border-radius:var(--r-md); background:#07080A; padding:var(--s5) var(--s6); position:relative; overflow:hidden; }
.engine::before{ content:""; position:absolute; inset:0; background:radial-gradient(100% 130% at 85% -10%, color-mix(in oklab,#4FC9C4 14%, transparent), transparent 60%); }
.engine *{ position:relative; }
.engine__k{ font-family:var(--font-mono); font-size:0.56rem; letter-spacing:0.16em; text-transform:uppercase; color:#8FF2EC; }
.engine__nm{ font-family:var(--font-display); font-weight:800; font-size:1.5rem; letter-spacing:0.06em; margin:6px 0; }
.engine__nm i{ font-style:normal; color:#4FC9C4; }
.engine__d{ font-size:var(--t-sm); color:var(--text-2); line-height:1.55; }
.engine__feeds{ margin-top:var(--s3); font-family:var(--font-mono); font-size:0.6rem; letter-spacing:0.08em; color:var(--text-3); }
.engine__feeds b{ color:var(--text-2); }

/* fly row (cie) + proof chips */
.proof{ display:flex; gap:var(--s4); flex-wrap:wrap; margin-top:var(--s5); }
.proof span{ font-family:var(--font-mono); font-size:0.66rem; letter-spacing:0.06em; border:1px solid var(--vc-line);
  border-radius:var(--r-pill); padding:7px 16px; color:var(--vcs); }
.proof span b{ color:var(--text); font-weight:600; }

/* ---------- O FIO (síntese) ---------- */
.fio{ border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; }
.fio table{ width:100%; border-collapse:collapse; font-size:var(--t-sm); }
.fio th{ font-family:var(--font-mono); font-size:0.6rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--text-3);
  text-align:left; padding:14px 18px; border-bottom:1px solid var(--line); background:var(--surface); font-weight:500; }
.fio td{ padding:14px 18px; border-bottom:1px solid var(--line); color:var(--text-2); vertical-align:top; line-height:1.5; }
.fio tr:last-child td{ border-bottom:0; }
.fio td.k{ font-family:var(--font-mono); font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--text); white-space:nowrap; }
.fio td b{ color:var(--text); font-weight:500; }
.fio .c-eng{ color:#CE8A5E; } .fio .c-tec{ color:#8FF2EC; } .fio .c-cie{ color:#9D4EFF; } .fio .c-au{ color:var(--accent-strong); }
@media (max-width:760px){ .fio{ overflow-x:auto; } .fio table{ min-width:680px; } }

/* ---------- DOCUMENTOS ---------- */
.docs{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s4); }
@media (max-width:880px){ .docs{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .docs{ grid-template-columns:1fr; } }
.doclink{ display:flex; flex-direction:column; gap:var(--s2); border:1px solid var(--line); border-radius:var(--r-md);
  background:var(--surface); padding:var(--s5); transition:border-color .2s, transform .2s; }
.doclink:hover{ border-color:var(--accent-line); transform:translateY(-2px); }
.doclink__k{ font-family:var(--font-mono); font-size:0.56rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--text-3); }
.doclink__t{ font-family:var(--font-display); font-weight:600; font-size:1rem; color:var(--text); }
.doclink__d{ font-size:var(--t-xs); color:var(--text-2); line-height:1.5; }
.doclink[data-v="eng"]:hover{ border-color:color-mix(in oklab,#B5683F 40%,transparent); }
.doclink[data-v="tec"]:hover{ border-color:color-mix(in oklab,#4FC9C4 36%,transparent); }
.doclink[data-v="cie"]:hover{ border-color:color-mix(in oklab,#6D28D9 44%,transparent); }

/* ---------- FOOTER ---------- */
.dfoot{ border-top:1px solid var(--line); padding:var(--s8) 0; text-align:center;
  font-family:var(--font-mono); font-size:0.62rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--text-3); line-height:2.2; }
.dfoot b{ color:var(--text-2); font-weight:500; }

/* reveal-on-scroll */
@media (prefers-reduced-motion:no-preference){
  .rv{ opacity:0; transform:translateY(18px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
  .rv.in{ opacity:1; transform:none; }
}
