/* Home v4: prova real, cenário ilustrativo e produto completo no celular. */
.hp{--v3w:1200px}
.v3-hero{padding-top:clamp(72px,8vw,120px)}
.v3-hero-txt{max-width:980px}
.v3-hero h1{font-size:clamp(2.5rem,4.7vw,4.25rem);max-width:23ch;margin-inline:auto;line-height:1.015;text-wrap:balance}
.v3-hero-vis{height:auto;margin-top:clamp(48px,6vw,80px);padding-bottom:0;isolation:isolate}
.v3-hero-vis .hw-main{height:520px;border-radius:14px 14px 0 0}
.v3-hero-vis .v4-stage{position:relative;min-width:0}
.v4-stage-back{position:absolute;inset:0 28px auto;height:100%;border:1px solid #e3dacd;border-bottom:0;border-radius:14px 14px 0 0;background:#f6f0e8;transform:translateY(-12px);z-index:-1}
.v4-stage-back::after{content:"";position:absolute;inset:-11px 26px auto;height:12px;border:1px solid #e3dacd;border-bottom:0;border-radius:12px 12px 0 0;background:#f9f4ec;z-index:-2}
.v3-hero-vis .ap-tr:nth-child(n+7),.v3-hero-vis .ap-th+.ap-tr:nth-child(n+7){display:none}
/* Ten logos, two deliberate rows. Each cell has the same optical height. */
.v4-proof{padding:64px 24px 56px;background:#fff}
.v4-proof>p:first-child{margin:0 auto 36px;max-width:1200px;color:#46423d;text-align:center;font-size:13px;letter-spacing:.04em;text-transform:none}
.v4-logo-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;max-width:1050px;margin:0 auto;border:1px solid #ece4d9;border-radius:14px;overflow:hidden;background:#fff}
.v4-logo-row>span{min-width:0;height:88px;display:grid;place-items:center;border-right:1px solid #ece4d9;border-bottom:1px solid #ece4d9;padding:16px 24px}
.v4-logo-row>span:nth-child(5n){border-right:0}.v4-logo-row>span:nth-child(n+6){border-bottom:0}
.v4-logo-row img{display:block;width:100%;height:36px;object-fit:contain;filter:grayscale(1) brightness(.12);opacity:.84}
.v4-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:760px;margin:36px auto 0}
.v4-track>div{padding:0 24px;text-align:center;border-right:1px solid #e3dacd;display:grid;gap:4px}
.v4-track>div:last-child{border-right:0}
.v4-track b{font-size:clamp(1.75rem,2.5vw,2.375rem);letter-spacing:-.035em;line-height:1.1}
.v4-track span{font-size:.875rem;color:#5a5650;line-height:1.45}
.v4-source{font-size:12px;line-height:1.6;color:#6b645c;text-align:center;max-width:76ch!important;margin:24px auto 0!important;text-transform:none!important;letter-spacing:0!important}
/* An animated attack path with evidence and the fix, clearly marked as hypothetical. */
.v4-finding-sec{background:#f8f2e9;border-top:1px solid #ece4d9;border-bottom:1px solid #ece4d9}
.v4-finding{background:#fff;border:1px solid #e3dacd;border-radius:22px;overflow:hidden;box-shadow:0 22px 60px -32px rgb(23 23 23/.18)}
.v4-finding-head{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:32px 36px;border-bottom:1px solid #e9e3da}
.v4-finding-head>div:first-child>.mono{color:#73706b;font-size:12px;letter-spacing:.025em}
.v4-finding-head h3{font-size:clamp(1.45rem,2.2vw,2rem);letter-spacing:-.025em;margin:10px 0 0}
.v4-severity{display:flex;align-items:center;gap:12px;padding-left:28px;border-left:1px solid #e5ded4;flex:none}
.v4-severity>b{font-size:3rem;line-height:1;color:#FF4000;letter-spacing:-.05em}
.v4-severity>span{font-size:14px;font-weight:700;line-height:1.4}
.v4-severity small{display:block;margin-top:4px;font-size:11px;font-weight:400;color:#5a5650}
.v4-finding-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.v4-attack{padding:32px 36px 36px}
.v4-label{font-size:11px;text-transform:uppercase;letter-spacing:.065em;color:#6b645c;margin:0 0 18px}
.v4-attack ol{list-style:none;margin:0;padding:0}
.v4-attack li{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:18px;padding-bottom:26px}
.v4-attack li:not(:last-child)::before{content:"";position:absolute;left:14px;top:31px;bottom:0;border-left:1px dashed #dccec0}
.v4-attack li:not(:last-child)::after{content:"";position:absolute;left:14px;top:31px;height:32px;border-left:1px solid #FF4000;animation:v4path 3s ease-in-out infinite}
.v4-attack li:nth-child(2)::after{animation-delay:1s}.v4-attack li:nth-child(3)::after{display:none}
.v4-n{display:grid;place-items:center;width:30px;height:30px;border:1px solid #dacfc3;border-radius:50%;background:#fff;font-size:10px;color:#514b43;position:relative;z-index:1}
.v4-attack b{display:block;font-size:16px;line-height:1.35;margin:4px 0 6px}
.v4-attack p{color:#5a5650;font-size:14px;line-height:1.55;margin:0 0 10px}
.v4-attack code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;color:#2f2c28;font-size:11px;background:#f7f3ed;border:1px solid #e9e2d9;border-radius:7px;padding:9px 11px}
.v4-attack .is-hit .v4-n{background:#FF4000;color:#fff;border-color:#FF4000}
.v4-attack .is-hit code{border-color:#ffbca3;background:#fff4ee}
@keyframes v4path{0%,100%{transform:translateY(0);opacity:0}20%,70%{opacity:1}85%{transform:translateY(calc(100% + 34px));opacity:0}}
.v4-proof-card{background:#111;color:#eee;padding:28px 32px;min-width:0}
.v4-proof-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #333;padding-bottom:20px;margin-bottom:16px}
.v4-proof-card-head .mono{color:#b9b3ab;font-size:12px}
.v4-valid{font-size:12px;border:1px solid #FF4000;color:#FF7A45;border-radius:99px;padding:4px 9px}
.v4-proof-card dl{margin:0;display:grid;gap:12px}
.v4-proof-card dl>div{display:grid;gap:4px}.v4-proof-card dt{font-size:12px;color:#aaa49c}.v4-proof-card dd{margin:0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.v4-proof-card dd.mono{font-size:10px;color:#ddd}
.v4-fix{margin-top:24px;padding-top:8px;border-top:1px solid #333}.v4-fix .v4-label{color:#aaa49c;margin-top:16px}.v4-fix h4{font-size:17px;line-height:1.3;margin:0 0 8px;color:#fff}.v4-fix>p:not(.v4-label){font-size:13px;line-height:1.55;color:#b9b3ab;margin:0 0 14px}
.v4-fix pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#050505;border:1px solid #333;border-radius:8px;padding:14px;font-size:11px;line-height:1.8;color:#ddd;margin:0}.v4-fix pre>span:first-child{color:#FF7A45}.v4-code-note{display:block;color:#99948c;font-size:10px;margin-top:3px}
.v4-retest{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin-top:20px;background:#FF4000;color:#111;padding:14px 16px;border-radius:9px}.v4-retest>.mono{grid-row:1/span 2;font-size:10px;padding-top:2px}.v4-retest b{font-size:13px;line-height:1.4}.v4-retest>span:last-child{font-size:12px}
.v4-finding>footer{font-size:12px;line-height:1.5;color:#5a5650;background:#FCF7F0;border-top:1px solid #e9e2d9;padding:14px 36px}
/* Numbering and global technical references. */
.hp-eyebrow{font-family:Geist,sans-serif;font-weight:600}
.v4-framework-note{color:#b9b3ab;text-align:center;margin:0 auto 16px;font-size:13px}
.team .people{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1100px;margin-inline:auto}
@media(min-width:1100px){.team .person{padding:36px 32px 0}.team .person:nth-child(3n+1){padding-left:32px;border-left:1px solid #e9e9e9}.team .person:nth-child(odd){padding-left:0;border-left:0}.team .person:nth-child(n+3){margin-top:36px;border-top:1px solid #e9e9e9}.team .person-logos{flex-wrap:wrap;gap:14px 20px}.team .person-logos .person-logo{max-width:100px}}
.team .people-advisors{grid-template-columns:minmax(0,1fr);max-width:none}
.team .people-advisors .person{display:grid;grid-template-columns:auto minmax(0,1fr);border:0;padding:24px 0 0;margin:0;gap:16px 28px}
.team .people-advisors .person>div{margin:0}
.team .people-advisors .person-photo{grid-row:1/span 2;margin:0}
.team .person-logos .person-logo{height:auto;max-height:22px;width:auto}
/* Footer: four filled columns, no empty navigation. */
.v3-foot-cols{grid-template-columns:2fr 1.3fr 1.2fr 1fr}
.v3-foot-top p{max-width:56ch}
/* Small screens: the full app scales as one image, not a horizontally cropped table. */
@media(max-width:960px){
  .v4-finding-body{grid-template-columns:minmax(0,1fr)}
  .v4-logo-row{max-width:720px}
  .v4-logo-row>span{padding:14px 18px}
  .v3-hero-vis .hw-main .ap-tr:nth-child(n+5){display:none}
  .v3-hero-vis .hw-main{height:440px}
}
@media(min-width:641px) and (max-width:960px){
  .v3-hero-vis .ap-th,.v3-hero-vis .ap-tr{grid-template-columns:86px minmax(0,1fr) 100px 112px 86px}
}
@media(max-width:640px){
  .v3-hero{padding:56px 18px 0}
  .v3-hero h1{font-size:clamp(1.875rem,7.6vw,2.5rem);line-height:1.05;max-width:19ch;margin-bottom:18px}
  .v3-hero p{font-size:1rem;line-height:1.55;margin-bottom:24px}
  .v3-ctas{gap:8px;flex-wrap:nowrap}.v3-ctas .btn{min-height:46px;padding-inline:14px;font-size:13px}
  .v3-hero-vis{margin-top:40px;width:100%;height:0;padding-bottom:calc(65.142857% + 12px);overflow:visible}
  .v3-hero-vis .v4-stage{position:absolute;width:700px;height:456px;left:50%;top:0;transform:translateX(-50%) scale(calc((100vw - 36px)/700px));transform-origin:top center}
  .v3-hero-vis .hw-main{height:456px;border-radius:12px}
  .v3-hero-vis .ap{grid-template-columns:150px minmax(0,1fr)}
  .v3-hero-vis .ap-side{display:flex}
  .v3-hero-vis .hw .ap-search,.v3-hero-vis .hw .ap-run{display:none}
  .v3-hero-vis .ap-th,.v3-hero-vis .ap-tr{grid-template-columns:62px minmax(0,1fr) 84px 96px;gap:9px}
  .v3-hero-vis .ap-tr>:nth-child(5),.v3-hero-vis .ap-th>:nth-child(5){display:none}
  .v3-hero-vis .ap-tr>:nth-child(4),.v3-hero-vis .ap-th>:nth-child(4){display:grid}
  .v3-hero-vis .ap-tr:nth-child(n+5){display:none}
  .v4-proof{padding:48px 18px}
  .v4-proof>p:first-child{font-size:12px;margin-bottom:24px}
  .v4-logo-row{grid-template-columns:repeat(2,minmax(0,1fr));border-radius:12px}
  .v4-logo-row>span{height:72px;padding:12px 20px;border-right:1px solid #ece4d9;border-bottom:1px solid #ece4d9}
  .v4-logo-row>span:nth-child(5n){border-right:1px solid #ece4d9}
  .v4-logo-row>span:nth-child(2n){border-right:0}
  .v4-logo-row>span:nth-child(n+6){border-bottom:1px solid #ece4d9}
  .v4-logo-row>span:nth-child(n+9){border-bottom:0}
  .v4-logo-row img{height:28px}
  .v4-track{margin-top:28px;grid-template-columns:1fr;gap:16px}
  .v4-track>div{display:flex;align-items:baseline;gap:16px;border:0;padding:0;text-align:left;justify-content:center}
  .v4-track b{font-size:1.75rem;flex:0 0 92px}
  .v4-track span{max-width:145px;font-size:12px}
  .v4-source{font-size:11px!important;line-height:1.6;margin-top:24px!important}
  .v3-sec{padding:80px 18px}
  .v3-head h2{font-size:2rem;line-height:1.1}
  .v3-head p:not(.v3-eb){font-size:1rem}
  .v3-pillars{gap:16px}.v3-pillars article{padding:16px 20px 28px}.v3-pillars .ill{aspect-ratio:1.4/1}.v3-pillars .ill img{max-height:96%;width:72%}
  .v4-finding{border-radius:14px}.v4-finding-head{padding:24px 20px;display:grid;gap:20px}.v4-finding-head h3{font-size:1.5rem}.v4-severity{border:0;border-top:1px solid #e9e2d9;padding:18px 0 0}.v4-severity>b{font-size:2.5rem}
  .v4-attack{padding:24px 20px}.v4-attack li{gap:12px;grid-template-columns:28px minmax(0,1fr)}
  .v4-proof-card{padding:24px 20px}.v4-proof-card-head{align-items:flex-start;gap:12px}.v4-proof-card-head .mono{max-width:16ch}.v4-retest{grid-template-columns:1fr}.v4-retest>.mono{grid-row:auto}
  .v4-finding>footer{padding:16px 20px}
  .v3-agents{grid-template-columns:1fr}.v3-agents article{padding:24px}
  .cap{padding-block:40px}.cap-vis{border-radius:14px;padding:12px;min-height:0;overflow:visible}
  .cap-vis .hw-cap{height:380px}.cap-vis .hw-surf{width:100%;max-width:340px}.cap-vis .hw-detail{width:100%}
  .hw .ap-th,.hw .ap-tr{grid-template-columns:60px minmax(0,1fr) 76px}.hw .ap-tr>:nth-child(n+4),.hw .ap-th>:nth-child(n+4){display:none}
  .v3-int>div{padding:18px}.v4-src{max-width:94%}
  .team .people{grid-template-columns:minmax(0,1fr)}
  .team .person-logos{gap:16px;flex-wrap:wrap}.team .person-logos .person-logo{max-width:90px}
  .team .people-advisors .person{display:grid;grid-template-columns:64px minmax(0,1fr);gap:0 16px;padding:28px 0 0}
  .team .people-advisors .person-photo{width:64px;height:64px;align-self:center}
  .team .people-advisors .person-logo{grid-column:1/-1;margin-top:16px}
  .v3-foot{padding:64px 18px 24px}.v3-foot-cols{grid-template-columns:1fr 1fr;gap:36px 24px;padding-top:36px}.v3-foot-top{align-items:flex-start}.v3-foot-top p{order:3;flex-basis:100%;margin-top:8px;font-size:14px}.v3-foot-top .btn{min-height:42px;padding-inline:12px;font-size:13px}
  .v3-foot-bot{gap:16px;flex-wrap:wrap}.v3-foot-bot>span:nth-child(2){order:3;width:100%}
}
@media(prefers-reduced-motion:reduce){.v4-attack li::after{display:none}.v4-attack li::before{border-color:#FF4000}}

@media(max-width:640px){.hw-cap .ap-filters span:nth-child(n+4){display:none}.hw-cap .ap-tr:nth-child(n+6){display:none}.hw-cap .ap-top{padding-inline:10px}.hw-cap .ap-table{padding-inline:10px}}

/* Geist also for editorial labels; Departure Mono stays with IDs, status and code. */
.v3-eb,.hp-eyebrow,.v3-int span,.v4-label,.cap-note,.v4-framework-note{font-family:Geist,sans-serif}
.v4-proof>p:first-child{font-family:Geist,sans-serif;font-weight:600}
.v3-frameworks span{font-family:Geist,sans-serif}

.v4-track b{white-space:nowrap}
@media(max-width:640px){.v4-track b{flex-basis:108px}}
