/* ============================================================
   NexusFinLabs — live scan · V4 light theme
   Matches the V4 landing: #F9FDFC, teal #008D96, Helvetica heads,
   Raleway body, Montserrat labels, JetBrains Mono for code output.
   ============================================================ */
:root{
  --bg:#F9FDFC; --bg-2:#EEF7F5; --panel:#ffffff; --panel-2:#F4F8F7;
  --line:#e2eae8; --line-2:#eef3f1;
  --ink:#10171a; --muted:#5d6f72; --faint:#8a999b;
  --teal:#008D96; --teal-dark:#00727a; --teal-soft:#E0F1F0; --teal-line:#bfe2e0;
  --accent:#008D96;
  --pass:#0f9d6a; --fail:#d24b43; --high:#d24b43; --med:#c08a17; --low:#8a999b;
  --r-sm:7px; --r-md:11px; --r-lg:14px; --r-xl:18px;
  --maxw:1180px; --pad:clamp(20px,4.5vw,56px);
  --helv:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --mont:'Montserrat',var(--helv); --ral:'Raleway',var(--helv);
  --head:var(--helv); --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--ral);color:var(--ink);background:var(--bg);font-size:16px;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}

/* backdrop off (clean light) */
.grid-bg,.glow,.glow-a,.glow-b{display:none}
main,.nav,.footer{position:relative;z-index:2}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(249,253,252,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-2)}
.nav-inner{display:flex;align-items:center;gap:28px;padding:16px var(--pad)}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--helv);font-weight:700;font-size:19px;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.brand em{font-style:normal;font-weight:500;color:var(--muted);font-size:14.5px}
.brand .mark{width:25px;height:25px;flex:none}
.nav-links{display:flex;gap:26px;margin-left:8px}
.nav-links a{font-family:var(--ral);font-size:15px;font-weight:500;color:var(--ink);transition:color .15s;white-space:nowrap}
.nav-links a:hover{color:var(--teal)}
.nav-spacer{flex:1}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:48px;padding:0 22px;
  font-family:var(--ral);font-size:15px;font-weight:600;border:1.5px solid transparent;border-radius:7px;white-space:nowrap;
  transition:background .16s,border-color .16s,color .16s}
.btn-primary{background:var(--teal);color:#fff}
.btn-primary:hover{background:var(--teal-dark)}
.btn-ghost{background:transparent;color:var(--teal);border-color:var(--teal-line)}
.btn-ghost:hover{border-color:var(--teal);background:var(--teal-soft)}
.btn-sm{height:42px;padding:0 17px;font-size:14px;border-radius:6px}
.btn-lg{height:54px;padding:0 26px;font-size:15.5px}

/* eyebrow / headings */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--mont);font-size:12.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--teal);margin:0 0 20px}
.pulse{width:9px;height:9px;border-radius:2px;background:var(--teal)}
.h2{font-family:var(--helv);font-weight:700;letter-spacing:-.03em;line-height:1.06;
  font-size:clamp(28px,4.2vw,46px);margin:0 0 18px;text-wrap:balance;color:var(--ink)}
.h2 .dim{color:var(--faint)}
.section-lede{font-size:clamp(15px,1.5vw,17px);line-height:1.62;color:var(--muted);max-width:680px;margin:0}
.section-lede b,.lede b{color:var(--ink);font-weight:600}

/* hero */
.hero{display:grid;grid-template-columns:1fr;gap:clamp(30px,5vw,64px);
  align-items:center;padding:clamp(48px,7vw,92px) var(--pad) clamp(28px,4vw,48px)}
.hero h1{font-family:var(--helv);font-weight:700;letter-spacing:-.035em;line-height:1.0;
  font-size:clamp(40px,6vw,68px);margin:0 0 22px;text-wrap:balance;color:var(--ink)}
.grad{color:var(--teal)}
.hero .lede{font-family:var(--ral);font-size:clamp(16px,1.5vw,19px);line-height:1.6;color:var(--muted);max-width:640px;margin:0 0 30px}

/* SCANNER */
.scanner{margin-top:36px;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;background:var(--panel);
  box-shadow:0 30px 70px -45px rgba(0,80,80,.35)}
.scan-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding:18px 22px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.lang-seg{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#fff}
.seg{height:36px;padding:0 16px;border:none;border-radius:6px;background:transparent;color:var(--muted);
  font-family:var(--ral);font-size:14px;font-weight:600;white-space:nowrap;transition:all .15s}
.seg.on{background:var(--teal);color:#fff}
.seg:not(.on):hover{color:var(--ink)}

/* score gauge */
.scan-score{display:flex;align-items:center;gap:26px;padding:24px 22px;border-bottom:1px solid var(--line);
  background:linear-gradient(120deg,var(--teal-soft),transparent 60%)}
.gauge{position:relative;width:120px;height:120px;flex:none}
.gauge svg{transform:rotate(-90deg)}
.g-track{fill:none;stroke:#dde7e5;stroke-width:9}
.g-fill{fill:none;stroke:var(--teal);stroke-width:9;stroke-linecap:round;
  stroke-dasharray:327;stroke-dashoffset:327;transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1),stroke .6s}
.gauge-num{position:absolute;inset:0;display:grid;place-items:center;flex-direction:column;text-align:center}
.gauge-num b{font-family:var(--helv);font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:1;color:var(--ink)}
.gauge-num span{font-size:12px;color:var(--faint)}
.score-meta h4{font-family:var(--helv);margin:0 0 4px;font-size:16px;font-weight:700;color:var(--ink)}
.score-meta p{margin:0 0 12px;font-size:13.5px;color:var(--muted)}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.legend i.lg{width:9px;height:9px;border-radius:3px;display:inline-block;margin-right:6px;vertical-align:0}
.lg.pass{background:var(--pass)}.lg.fail{background:var(--fail)}

/* results */
.results{padding:14px 16px 6px;min-height:120px}
.empty{display:flex;align-items:center;gap:16px;padding:30px 18px;color:var(--faint)}
.empty svg{width:40px;height:40px;flex:none;opacity:.6;color:var(--teal)}
.empty p{margin:0;font-size:14px;line-height:1.55;max-width:520px}
.empty b{color:var(--muted)}

.res{border:1px solid var(--line);border-radius:var(--r-md);margin:10px 6px;overflow:hidden;background:#fff;
  animation:slidein .35s ease both}
@keyframes slidein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.res.running{border-color:var(--teal-line)}
.res-head{display:flex;align-items:center;gap:12px;padding:13px 16px;cursor:pointer;user-select:none}
.res-cat{font-family:var(--mono);font-size:12px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lang-chip{font-family:var(--mono);font-size:10.5px;font-weight:600;padding:3px 7px;border-radius:6px;
  background:var(--bg-2);border:1px solid var(--line);color:var(--muted);text-transform:uppercase;flex:none}
.res-spacer{flex:1}
.sev{font-family:var(--mono);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;flex:none}
.sev.high{color:var(--high)}.sev.medium{color:var(--med)}.sev.low{color:var(--low)}
.vbadge{font-family:var(--mono);font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:999px;flex:none;letter-spacing:.03em}
.vbadge.PASS{color:var(--pass);background:rgba(15,157,106,.1);border:1px solid rgba(15,157,106,.3)}
.vbadge.FAIL{color:var(--fail);background:rgba(210,75,67,.09);border:1px solid rgba(210,75,67,.3)}
.vbadge.run{color:var(--teal);background:var(--teal-soft);border:1px solid var(--teal-line)}
.spin{width:12px;height:12px;border:2px solid var(--teal-soft);border-top-color:var(--teal);border-radius:50%;
  display:inline-block;animation:spin .7s linear infinite;vertical-align:-1px;margin-right:6px}
@keyframes spin{to{transform:rotate(360deg)}}
.chev{width:15px;height:15px;color:var(--faint);transition:transform .25s;flex:none}
.res.open .chev{transform:rotate(180deg)}
.res-body{max-height:0;overflow:hidden;transition:max-height .35s ease;border-top:1px solid transparent}
.res.open .res-body{max-height:900px;border-top-color:var(--line)}
.rb-inner{padding:14px 16px 16px;display:grid;gap:12px}
.rb-block .rb-lab{font-family:var(--mont);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 6px}
.rb-block pre{margin:0;font-family:var(--mono);font-size:12.5px;line-height:1.6;color:var(--ink);
  white-space:pre-wrap;word-break:break-word;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:11px 13px}
.rb-block.attack pre{color:#33405a}
.rb-reason{font-size:13px;color:var(--muted);line-height:1.5}
.rb-reason.FAIL{color:#b14941}.rb-reason.PASS{color:#0c7c54}

.disclaimer{margin:6px 22px 22px;font-size:12px;color:var(--faint);line-height:1.5;border-top:1px solid var(--line-2);padding-top:14px}

/* CTA + footer */
.section{padding:clamp(40px,6vw,72px) var(--pad)}
.cta-band{display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;
  padding:clamp(32px,4vw,44px) clamp(28px,4vw,40px);border-radius:var(--r-xl);border:0;background:var(--teal)}
.cta-band h3{font-family:var(--helv);margin:0 0 8px;font-size:clamp(22px,2.6vw,30px);font-weight:700;letter-spacing:-.02em;color:#fff}
.cta-band p{margin:0;color:rgba(255,255,255,.85);font-size:15px;line-height:1.5}
.cta-band .btn-primary{background:#fff;color:var(--teal)}
.cta-band .btn-primary:hover{background:#eafafa}
.cta-actions{display:flex;gap:12px;flex-wrap:wrap}

.footer{border-top:1px solid var(--line);margin-top:30px}
.foot-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:32px var(--pad)}
.foot-inner .brand{font-size:17px}
.foot-inner .mark{width:23px;height:23px}
.foot-note{font-family:var(--ral);font-size:13px;color:var(--faint);text-align:right;line-height:1.7}

@media(max-width:920px){
  .nav-links{display:none}
}
@media(max-width:560px){
  .scan-head{flex-direction:column;align-items:stretch}
  .scan-head .btn{width:100%}
  .scan-score{flex-direction:column;text-align:center}
}
