NEXUS Cve Exploit Anasayfa Tasarımını yayınlıyorum.Bunu sadece html olarak düşündüm.Eyer istek gelirse bunu bir script haline çevirebilirim.
Wordpress kısmında daha çok işlev sağlayabilir.
Alıp kullanabilirsiniz.
Kullanılan Tasarımlar:
Loader Sistemi
Hero Section
Canlı CVE Listesi
Exploit Index Tablosu
Attack Canvas
Cursor
Wordpress kısmında daha çok işlev sağlayabilir.
Alıp kullanabilirsiniz.
Kullanılan Tasarımlar:
Loader Sistemi
Hero Section
Canlı CVE Listesi
Exploit Index Tablosu
Attack Canvas
Cursor
Kod:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NEXUS — Zero-Day Intelligence</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Mono:wght@300;400;500&family=Bebas+Neue&display=swap" rel="stylesheet">
<style>
:root{
--void:#02040a;
--deep:#060b14;
--panel:rgba(8,15,28,0.7);
--glass:rgba(255,255,255,0.03);
--rim:rgba(255,255,255,0.06);
--rimhot:rgba(0,210,255,0.3);
--cyan:#00d2ff;
--cyan2:#0098ff;
--plasma:#ff2d6b;
--gold:#ffd060;
--lime:#39ff6e;
--txt:#b8cce0;
--txtdim:#3a5570;
--txtbright:#e8f4ff;
--glow-c:0 0 30px rgba(0,210,255,0.35);
--glow-p:0 0 30px rgba(255,45,107,0.4);
--glow-l:0 0 20px rgba(57,255,110,0.3);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:16px}
body{
background:var(--void);
color:var(--txt);
font-family:'Syne',sans-serif;
overflow-x:hidden;
cursor:none;
}
#C{position:fixed;z-index:99999;pointer-events:none;top:0;left:0}
#Cdot{
position:absolute;width:8px;height:8px;
background:var(--cyan);border-radius:50%;
transform:translate(-50%,-50%);
transition:width .15s,height .15s,background .15s;
box-shadow:0 0 16px var(--cyan),0 0 40px rgba(0,210,255,.2);
}
#Cring{
position:absolute;width:32px;height:32px;
border:1.5px solid rgba(0,210,255,.5);
border-radius:50%;
transform:translate(-50%,-50%);
transition:width .2s,height .2s,border-color .2s,transform .08s;
}
#Ccross{
position:absolute;width:20px;height:20px;
transform:translate(-50%,-50%);
opacity:.4;
}
#Ccross::before,#Ccross::after{
content:'';position:absolute;background:var(--cyan);
}
#Ccross::before{width:1px;height:100%;left:50%;top:0}
#Ccross::after{height:1px;width:100%;top:50%;left:0}
#LOADER{
position:fixed;inset:0;z-index:100000;
background:var(--void);
display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;
transition:opacity .8s ease, transform .8s ease;
}
#LOADER.exit{opacity:0;transform:scale(1.08);pointer-events:none}
.ld-logo{
font-family:'Bebas Neue',sans-serif;
font-size:clamp(56px,10vw,120px);
letter-spacing:20px;
color:transparent;
-webkit-text-stroke:1px rgba(0,210,255,.4);
position:relative;
animation:ldGlitch 4s ease infinite;
}
.ld-logo::before{
content:'NEXUS';
position:absolute;inset:0;
color:var(--cyan);
-webkit-text-stroke:0;
clip-path:inset(0 100% 0 0);
animation:ldReveal 1.2s cubic-bezier(.77,0,.175,1) forwards .3s;
text-shadow:var(--glow-c);
}
@keyframes ldReveal{to{clip-path:inset(0 0% 0 0)}}
@keyframes ldGlitch{
0%,92%,100%{transform:skewX(0) translateX(0)}
93%{transform:skewX(-6deg) translateX(-4px)}
94%{transform:skewX(4deg) translateX(3px)}
95%{transform:skewX(0) translateX(0)}
97%{transform:skewX(-3deg)}
98%{transform:skewX(0)}
}
.ld-sub{
font-family:'DM Mono',monospace;
font-size:11px;letter-spacing:6px;
color:var(--txtdim);text-transform:uppercase;
margin-top:16px;margin-bottom:48px;
animation:fadeIn .6s ease forwards 1.2s;opacity:0;
}
@keyframes fadeIn{to{opacity:1}}
.ld-progress{
width:280px;height:1px;
background:rgba(0,210,255,.08);
position:relative;overflow:hidden;
}
.ld-bar{
height:100%;background:linear-gradient(90deg,transparent,var(--cyan),var(--cyan2));
animation:ldLoad 2s cubic-bezier(.4,0,.2,1) forwards .5s;
width:0;
box-shadow:0 0 12px var(--cyan);
}
@keyframes ldLoad{0%{width:0}60%{width:70%}80%{width:85%}100%{width:100%}}
.ld-pct{
font-family:'DM Mono',monospace;font-size:10px;
color:var(--cyan);letter-spacing:2px;
margin-top:12px;animation:fadeIn .6s forwards .5s;opacity:0;
}
.ld-scan{
position:absolute;inset:0;
background:linear-gradient(180deg,transparent 40%,rgba(0,210,255,.02) 50%,transparent 60%);
animation:scanLine 3s linear infinite;
}
@keyframes scanLine{from{transform:translateY(-100%)}to{transform:translateY(100vh)}}
#BG{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg-nebula{
position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;
}
.nb1{width:900px;height:700px;background:radial-gradient(ellipse,rgba(0,80,180,.12),transparent 70%);top:-200px;right:-200px;animation:nbFloat 18s ease-in-out infinite}
.nb2{width:700px;height:500px;background:radial-gradient(ellipse,rgba(255,45,107,.08),transparent 70%);bottom:-100px;left:-100px;animation:nbFloat 22s ease-in-out infinite reverse}
.nb3{width:500px;height:500px;background:radial-gradient(ellipse,rgba(0,210,255,.06),transparent 70%);top:40%;left:30%;animation:nbFloat 15s ease-in-out infinite 5s}
@keyframes nbFloat{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(30px,-40px) scale(1.08)}}
#bgCanvas{position:absolute;inset:0;opacity:0.35}
.bg-grid{
position:absolute;inset:0;
background-image:
linear-gradient(rgba(0,210,255,.025) 1px,transparent 1px),
linear-gradient(90deg,rgba(0,210,255,.025) 1px,transparent 1px);
background-size:80px 80px;
animation:gridDrift 30s linear infinite;
}
@keyframes gridDrift{to{background-position:80px 80px}}
.bg-scanlines{
position:absolute;inset:0;
background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.1) 3px,rgba(0,0,0,.1) 4px);
pointer-events:none;
}
.bg-vignette{
position:absolute;inset:0;
background:radial-gradient(ellipse 120% 100% at 50% 50%,transparent 40%,rgba(2,4,10,.8) 100%);
}
#PROG{
position:fixed;top:0;left:0;right:0;height:2px;z-index:9999;
background:linear-gradient(90deg,var(--cyan),var(--plasma),var(--gold));
transform-origin:left;transform:scaleX(0);
box-shadow:0 0 10px var(--cyan);
}
/* ─── NAV ─── */
nav{
position:fixed;top:0;left:0;right:0;z-index:1000;
height:68px;
display:flex;align-items:center;justify-content:space-between;
padding:0 48px;
}
.nav-glass{
position:absolute;inset:0;
background:rgba(2,4,10,.6);
backdrop-filter:blur(24px) saturate(1.5);
border-bottom:1px solid var(--rim);
}
.nav-glass::after{
content:'';position:absolute;bottom:0;left:0;width:0;height:1px;
background:linear-gradient(90deg,var(--cyan),var(--plasma),transparent);
animation:navGlow 1.5s ease forwards 3.5s;
}
@keyframes navGlow{to{width:70%}}
.nav-brand{
font-family:'Bebas Neue',sans-serif;
font-size:22px;letter-spacing:8px;
color:var(--cyan);
text-shadow:var(--glow-c);
position:relative;z-index:1;
display:flex;align-items:center;gap:14px;
}
.nav-brand-mark{
width:30px;height:30px;
position:relative;
display:grid;place-items:center;
}
.nav-brand-mark::before,.nav-brand-mark::after{
content:'';position:absolute;border-radius:50%;
}
.nav-brand-mark::before{
width:100%;height:100%;
border:1.5px solid var(--cyan);
animation:markSpin 6s linear infinite;
box-shadow:0 0 10px var(--cyan);
}
.nav-brand-mark::after{
width:60%;height:60%;
background:var(--cyan);
animation:markPulse 2s ease infinite;
}
@keyframes markSpin{to{transform:rotate(360deg)}}
@keyframes markPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.nav-center{
position:absolute;left:50%;transform:translateX(-50%);
display:flex;gap:2px;z-index:1;
}
.nav-item{
padding:6px 20px;
font-family:'DM Mono',monospace;font-size:11px;letter-spacing:2px;
color:var(--txtdim);text-transform:uppercase;text-decoration:none;
position:relative;transition:color .3s;
clip-path:polygon(6px 0%,100% 0%,calc(100% - 6px) 100%,0% 100%);
}
.nav-item::before{
content:'';position:absolute;inset:0;
background:rgba(0,210,255,.05);
opacity:0;transition:opacity .3s;
clip-path:inherit;
}
.nav-item:hover{color:var(--cyan)}
.nav-item:hover::before{opacity:1}
.nav-item.active{color:var(--cyan)}
.nav-right{
display:flex;align-items:center;gap:20px;position:relative;z-index:1;
}
.nav-alert{
width:8px;height:8px;background:var(--plasma);border-radius:50%;
box-shadow:0 0 10px var(--plasma);animation:pulse 1.2s ease infinite;
}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.6)}}
.nav-alert-txt{
font-family:'DM Mono',monospace;font-size:10px;
color:var(--plasma);letter-spacing:2px;text-transform:uppercase;
}
.nav-btn{
padding:8px 22px;
border:1px solid rgba(0,210,255,.3);
color:var(--cyan);
font-family:'DM Mono',monospace;font-size:10px;letter-spacing:2px;
text-transform:uppercase;text-decoration:none;
transition:all .3s;
clip-path:polygon(6px 0%,100% 0%,calc(100% - 6px) 100%,0% 100%);
}
.nav-btn:hover{
background:rgba(0,210,255,.1);
border-color:var(--cyan);
box-shadow:var(--glow-c);
}
.hero{
min-height:100vh;
display:grid;grid-template-columns:1fr 1fr;
align-items:center;
padding:100px 80px 80px;
position:relative;z-index:2;
gap:80px;
max-width:1600px;margin:0 auto;
}
@media(max-width:1000px){.hero{grid-template-columns:1fr;padding:100px 32px 60px;gap:60px}}
.hero-left{position:relative}
.hero-eyebrow{
display:inline-flex;align-items:center;gap:14px;
font-family:'DM Mono',monospace;font-size:10px;letter-spacing:5px;
color:var(--cyan);text-transform:uppercase;
margin-bottom:28px;
opacity:0;animation:slideUp .7s ease forwards 3.4s;
}
.hero-eyebrow-line{width:32px;height:1px;background:var(--cyan);box-shadow:0 0 6px var(--cyan)}
.hero-eyebrow-dot{width:4px;height:4px;background:var(--plasma);border-radius:50%;animation:pulse 1.5s ease infinite}
.hero-title{
font-family:'Bebas Neue',sans-serif;
line-height:.92;
margin-bottom:32px;
opacity:0;animation:slideUp .7s ease forwards 3.6s;
}
.ht-sm{font-size:clamp(18px,2.5vw,30px);letter-spacing:8px;color:var(--txtdim);display:block;margin-bottom:8px}
.ht-lg{font-size:clamp(72px,9vw,130px);letter-spacing:2px;color:var(--txtbright);display:block;line-height:.9}
.ht-outline{
font-size:clamp(72px,9vw,130px);letter-spacing:2px;display:block;
color:transparent;
-webkit-text-stroke:1px rgba(0,210,255,.25);
line-height:.9;
}
.ht-accent{
font-size:clamp(72px,9vw,130px);letter-spacing:2px;display:block;
background:linear-gradient(135deg,var(--cyan),var(--plasma));
-webkit-background-clip:text;-webkit-text-fill-color:transparent;
background-clip:text;line-height:.9;
filter:drop-shadow(0 0 20px rgba(0,210,255,.3));
}
.hero-desc{
font-size:16px;line-height:1.8;
color:var(--txtdim);
max-width:480px;margin-bottom:44px;
font-weight:400;
opacity:0;animation:slideUp .7s ease forwards 3.8s;
}
.hero-desc em{color:var(--txt);font-style:normal;font-weight:600}
.hero-actions{
display:flex;gap:14px;flex-wrap:wrap;
opacity:0;animation:slideUp .7s ease forwards 4s;
}
.btn-glow{
position:relative;padding:16px 40px;
background:linear-gradient(135deg,var(--cyan),var(--cyan2));
color:#000;
font-family:'DM Mono',monospace;font-size:11px;letter-spacing:3px;
text-transform:uppercase;text-decoration:none;font-weight:500;
clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);
transition:all .3s;overflow:hidden;
}
.btn-glow::before{
content:'';position:absolute;inset:0;
background:rgba(255,255,255,.2);
transform:translateX(-100%) skewX(-20deg);
transition:transform .5s;
}
.btn-glow:hover{
box-shadow:0 0 40px rgba(0,210,255,.5),0 0 80px rgba(0,210,255,.2);
transform:translateY(-2px);
}
.btn-glow:hover::before{transform:translateX(150%) skewX(-20deg)}
.btn-ghost{
padding:15px 40px;
border:1px solid var(--rim);color:var(--txt);
font-family:'DM Mono',monospace;font-size:11px;letter-spacing:3px;
text-transform:uppercase;text-decoration:none;
clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);
transition:all .3s;
}
.btn-ghost:hover{border-color:rgba(0,210,255,.4);color:var(--cyan);background:rgba(0,210,255,.05)}
@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.hero-metrics{
display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
background:var(--rim);margin-top:60px;
opacity:0;animation:slideUp .7s ease forwards 4.2s;
}
.metric{
background:var(--deep);padding:20px 24px;
position:relative;overflow:hidden;transition:background .3s;
}
.metric:hover{background:rgba(0,210,255,.03)}
.metric::after{
content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
background:linear-gradient(90deg,var(--cyan),transparent);
transform:scaleX(0);transform-origin:left;transition:transform .5s;
}
.metric:hover::after{transform:scaleX(1)}
.metric-val{
font-family:'Bebas Neue',sans-serif;font-size:32px;letter-spacing:2px;
color:var(--cyan);text-shadow:var(--glow-c);display:block;
}
.metric-lbl{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:3px;color:var(--txtdim);text-transform:uppercase;margin-top:2px}
.hero-right{
position:relative;
opacity:0;animation:heroRight .9s ease forwards 3.8s;
}
@keyframes heroRight{from{opacity:0;transform:perspective(800px) rotateY(20deg)}to{opacity:1;transform:perspective(800px) rotateY(0deg)}}
.threat-display{
position:relative;
background:var(--panel);
border:1px solid var(--rim);
backdrop-filter:blur(20px);
overflow:hidden;
}
.threat-display::before{
content:'';position:absolute;inset:0;
background:linear-gradient(135deg,rgba(0,210,255,.02),transparent 50%,rgba(255,45,107,.02));
}
.td-header{
display:flex;align-items:center;justify-content:space-between;
padding:16px 24px;
border-bottom:1px solid var(--rim);
font-family:'DM Mono',monospace;font-size:11px;letter-spacing:2px;
}
.td-title{color:var(--txtdim);text-transform:uppercase}
.td-live{
display:flex;align-items:center;gap:8px;
color:var(--lime);font-size:10px;
}
.td-live-dot{
width:6px;height:6px;background:var(--lime);border-radius:50%;
box-shadow:var(--glow-l);animation:pulse 1.2s ease infinite;
}
.td-body{padding:0}
.cve-row{
display:grid;grid-template-columns:auto 1fr auto auto;
align-items:center;gap:16px;
padding:14px 24px;
border-bottom:1px solid rgba(255,255,255,.03);
transition:all .3s;cursor:pointer;position:relative;overflow:hidden;
}
.cve-row::before{
content:'';position:absolute;left:0;top:0;bottom:0;width:0;
transition:width .3s;
}
.cve-row:hover{background:rgba(255,255,255,.02)}
.cve-row:hover::before{width:2px}
.cve-row.crit::before{background:var(--plasma);width:2px}
.cve-row.high::before{background:#ff7a00;width:2px}
.cve-row.med::before{background:var(--gold);width:2px}
.cve-score-ring{
width:44px;height:44px;position:relative;flex-shrink:0;
}
.cve-score-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.cve-score-val{
position:absolute;inset:0;display:grid;place-items:center;
font-family:'Bebas Neue',sans-serif;font-size:14px;
}
.cve-info{min-width:0}
.cve-id{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:1px;color:var(--cyan);margin-bottom:2px}
.cve-name{font-size:13px;font-weight:600;color:var(--txtbright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cve-vendor{font-family:'DM Mono',monospace;font-size:10px;color:var(--txtdim);margin-top:1px}
.cve-badge{
font-family:'DM Mono',monospace;font-size:9px;letter-spacing:1px;
padding:3px 10px;white-space:nowrap;
}
.cve-time{font-family:'DM Mono',monospace;font-size:10px;color:var(--txtdim);white-space:nowrap}
.badge-c{background:rgba(255,45,107,.1);color:var(--plasma);border:1px solid rgba(255,45,107,.25)}
.badge-h{background:rgba(255,122,0,.1);color:#ff7a00;border:1px solid rgba(255,122,0,.25)}
.badge-m{background:rgba(255,208,96,.1);color:var(--gold);border:1px solid rgba(255,208,96,.25)}
.badge-new{background:rgba(0,210,255,.1);color:var(--cyan);border:1px solid rgba(0,210,255,.25);animation:badgePulse 2s infinite}
@keyframes badgePulse{0%,100%{opacity:1}50%{opacity:.5}}
.td-footer{
display:flex;align-items:center;justify-content:space-between;
padding:12px 24px;
background:rgba(0,0,0,.2);
border-top:1px solid var(--rim);
font-family:'DM Mono',monospace;font-size:10px;letter-spacing:2px;
}
.td-foot-stat{color:var(--txtdim);display:flex;align-items:center;gap:8px}
.td-foot-val{color:var(--cyan)}
.td-more{color:var(--cyan);text-decoration:none;display:flex;align-items:center;gap:6px;transition:gap .3s}
.td-more:hover{gap:10px}
.corner{position:absolute;width:16px;height:16px;pointer-events:none}
.corner.tl{top:0;left:0;border-top:1px solid var(--cyan);border-left:1px solid var(--cyan)}
.corner.tr{top:0;right:0;border-top:1px solid var(--cyan);border-right:1px solid var(--cyan)}
.corner.bl{bottom:0;left:0;border-bottom:1px solid var(--cyan);border-left:1px solid var(--cyan)}
.corner.br{bottom:0;right:0;border-bottom:1px solid var(--cyan);border-right:1px solid var(--cyan)}
.ticker-section{
position:relative;z-index:2;
border-top:1px solid var(--rim);
border-bottom:1px solid var(--rim);
overflow:hidden;background:rgba(2,4,10,.8);
backdrop-filter:blur(10px);
}
.ticker-track{display:flex;width:max-content;animation:tkScroll 50s linear infinite}
.ticker-track:hover{animation-play-state:paused}
.tk-item{
display:flex;align-items:center;gap:12px;
padding:11px 40px;
border-right:1px solid var(--rim);
font-family:'DM Mono',monospace;font-size:11px;letter-spacing:1px;
white-space:nowrap;
transition:background .3s;
}
.tk-item:hover{background:rgba(0,210,255,.03)}
.tk-id{color:var(--cyan)}
.tk-sep{color:var(--txtdim);margin:0 4px}
.tk-score.crit{color:var(--plasma)}
.tk-score.high{color:#ff7a00}
.tk-score.med{color:var(--gold)}
.tk-vendor{color:var(--txtdim)}
@keyframes tkScroll{to{transform:translateX(-50%)}}
.ticker-fade-l,.ticker-fade-r{
position:absolute;top:0;bottom:0;width:120px;z-index:1;pointer-events:none;
}
.ticker-fade-l{left:0;background:linear-gradient(90deg,rgba(2,4,10,1),transparent)}
.ticker-fade-r{right:0;background:linear-gradient(-90deg,rgba(2,4,10,1),transparent)}
.S{
position:relative;z-index:2;
max-width:1600px;margin:0 auto;
padding:120px 80px;
}
@media(max-width:768px){.S{padding:80px 24px}}
.S-full{max-width:100%;padding:120px 80px}
.S-tag{
display:inline-flex;align-items:center;gap:12px;
font-family:'DM Mono',monospace;font-size:10px;letter-spacing:5px;
color:var(--cyan);text-transform:uppercase;margin-bottom:20px;
}
.S-tag-line{width:28px;height:1px;background:linear-gradient(90deg,var(--cyan),transparent)}
.S-title{
font-family:'Bebas Neue',sans-serif;
font-size:clamp(40px,6vw,80px);letter-spacing:3px;
color:var(--txtbright);line-height:1;margin-bottom:16px;
}
.S-title .dim{
-webkit-text-stroke:1px rgba(255,255,255,.15);
color:transparent;
}
.S-title .grad{
background:linear-gradient(90deg,var(--cyan),var(--plasma));
-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.S-sub{
font-size:15px;color:var(--txtdim);line-height:1.8;max-width:500px;
font-weight:400;
}
.rv{opacity:0;transform:translateY(32px);transition:opacity .75s ease,transform .75s ease}
.rv.on{opacity:1;transform:translateY(0)}
.rv-left{opacity:0;transform:translateX(-40px);transition:opacity .75s ease,transform .75s ease}
.rv-left.on{opacity:1;transform:translateX(0)}
.rv-right{opacity:0;transform:translateX(40px);transition:opacity .75s ease,transform .75s ease}
.rv-right.on{opacity:1;transform:translateX(0)}
.rv-scale{opacity:0;transform:scale(.92);transition:opacity .7s ease,transform .7s ease}
.rv-scale.on{opacity:1;transform:scale(1)}
.rv-d1{transition-delay:.1s}.rv-d2{transition-delay:.2s}.rv-d3{transition-delay:.3s}
.rv-d4{transition-delay:.4s}.rv-d5{transition-delay:.5s}.rv-d6{transition-delay:.6s}
.stats-belt{
display:grid;grid-template-columns:repeat(5,1fr);gap:1px;
background:var(--rim);
}
@media(max-width:900px){.stats-belt{grid-template-columns:repeat(2,1fr)}}
.stat-glass{
background:var(--panel);
backdrop-filter:blur(20px);
padding:40px 28px;
position:relative;overflow:hidden;
transition:all .4s cubic-bezier(.23,1,.32,1);
}
.stat-glass::after{
content:'';position:absolute;
inset:0;background:linear-gradient(135deg,rgba(0,210,255,.04),transparent);
opacity:0;transition:opacity .4s;
}
.stat-glass:hover{background:rgba(8,20,40,.9);transform:translateY(-4px)}
.stat-glass:hover::after{opacity:1}
.stat-glass-icon{
font-size:24px;margin-bottom:20px;
filter:drop-shadow(0 0 8px rgba(0,210,255,.4));
}
.stat-glass-num{
font-family:'Bebas Neue',sans-serif;font-size:48px;letter-spacing:2px;
color:var(--txtbright);display:block;line-height:1;
}
.stat-glass-sub{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:3px;color:var(--txtdim);text-transform:uppercase;margin-top:8px;display:block}
.stat-glass-bar{
position:absolute;bottom:0;left:0;height:2px;
background:linear-gradient(90deg,var(--cyan),transparent);
transition:width 1.5s cubic-bezier(.23,1,.32,1);
}
.exploit-table{
background:var(--panel);border:1px solid var(--rim);
backdrop-filter:blur(20px);overflow:hidden;
}
.et-header{
display:grid;grid-template-columns:80px 1fr 120px 100px 100px 80px;
gap:16px;padding:14px 28px;
background:rgba(0,0,0,.3);border-bottom:1px solid var(--rim);
font-family:'DM Mono',monospace;font-size:10px;letter-spacing:3px;color:var(--txtdim);
text-transform:uppercase;
}
.et-row{
display:grid;grid-template-columns:80px 1fr 120px 100px 100px 80px;
gap:16px;padding:18px 28px;
border-bottom:1px solid rgba(255,255,255,.03);
align-items:center;
transition:all .3s;cursor:pointer;position:relative;
}
.et-row:hover{background:rgba(0,210,255,.025)}
.et-row::after{
content:'';position:absolute;left:0;top:0;bottom:0;width:0;
background:var(--cyan);transition:width .3s;
}
.et-row:hover::after{width:1px}
.et-row.new-row{animation:rowSlideIn .5s ease}
@keyframes rowSlideIn{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}
.et-id{font-family:'DM Mono',monospace;font-size:11px;color:var(--cyan);letter-spacing:1px}
.et-name{font-size:14px;font-weight:600;color:var(--txtbright)}
.et-name-sub{font-family:'DM Mono',monospace;font-size:10px;color:var(--txtdim);margin-top:2px}
.et-vendor{font-family:'DM Mono',monospace;font-size:11px;color:var(--txt)}
.et-score{
font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:1px;text-align:center;
}
.sc-c{color:var(--plasma);text-shadow:var(--glow-p)}
.sc-h{color:#ff7a00;text-shadow:0 0 15px rgba(255,122,0,.4)}
.sc-m{color:var(--gold)}
.et-type{font-family:'DM Mono',monospace;font-size:10px;text-align:center}
.et-act{
font-family:'DM Mono',monospace;font-size:10px;
display:flex;align-items:center;justify-content:center;gap:6px;
}
.et-act-dot{width:5px;height:5px;border-radius:50%;animation:pulse 1.5s infinite}
.act-exploit{color:var(--plasma)}.act-exploit .et-act-dot{background:var(--plasma);box-shadow:var(--glow-p)}
.act-patch{color:var(--lime)}.act-patch .et-act-dot{background:var(--lime)}
.act-poc{color:var(--gold)}.act-poc .et-act-dot{background:var(--gold)}
.intel-grid{
display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;
background:var(--rim);
}
@media(max-width:1100px){.intel-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.intel-grid{grid-template-columns:1fr}}
.intel-card{
background:var(--panel);backdrop-filter:blur(20px);
padding:36px 32px;position:relative;overflow:hidden;
transition:all .4s cubic-bezier(.23,1,.32,1);
}
.intel-card:hover{background:rgba(6,11,20,.95);transform:translateY(-3px)}
.intel-card::before{
content:'';position:absolute;top:0;left:0;right:0;height:1px;
background:linear-gradient(90deg,transparent,var(--cyan),transparent);
opacity:0;transition:opacity .4s;
}
.intel-card:hover::before{opacity:.5}
.ic-num{
font-family:'Bebas Neue',sans-serif;
font-size:11px;letter-spacing:4px;color:var(--txtdim);
text-transform:uppercase;margin-bottom:20px;display:block;
}
.ic-icon{font-size:36px;margin-bottom:20px;display:block;filter:drop-shadow(0 0 10px rgba(0,210,255,.3))}
.ic-title{
font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:2px;
color:var(--txtbright);margin-bottom:12px;
}
.ic-desc{font-size:13px;color:var(--txtdim);line-height:1.8;margin-bottom:24px;font-weight:400}
.ic-tags{display:flex;flex-wrap:wrap;gap:6px}
.ic-tag{
font-family:'DM Mono',monospace;font-size:9px;letter-spacing:2px;
padding:4px 12px;border:1px solid var(--rim);color:var(--txtdim);
text-transform:uppercase;transition:all .3s;
}
.intel-card:hover .ic-tag{border-color:rgba(0,210,255,.2);color:var(--cyan)}
.ic-link{
margin-top:20px;font-family:'DM Mono',monospace;font-size:10px;
letter-spacing:2px;color:var(--cyan);text-decoration:none;
display:inline-flex;align-items:center;gap:8px;
border-bottom:1px solid rgba(0,210,255,.2);padding-bottom:4px;
transition:gap .3s,border-color .3s;
}
.ic-link:hover{gap:14px;border-color:var(--cyan)}
.canvas-section{
position:relative;z-index:2;
background:var(--deep);
border-top:1px solid var(--rim);border-bottom:1px solid var(--rim);
}
.canvas-inner{
max-width:1600px;margin:0 auto;
padding:100px 80px;
display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;
}
@media(max-width:1000px){.canvas-inner{grid-template-columns:1fr}}
#attackCanvas{
width:100%;height:380px;
border:1px solid var(--rim);
background:rgba(2,4,10,.5);
display:block;
}
.canvas-info{display:flex;flex-direction:column;gap:24px;margin-top:32px}
.ci-item{
display:flex;align-items:center;gap:16px;
padding:16px 20px;
border:1px solid var(--rim);
transition:all .3s;
}
.ci-item:hover{border-color:rgba(0,210,255,.2);background:rgba(0,210,255,.02)}
.ci-icon{
width:40px;height:40px;border:1px solid var(--rim);
display:grid;place-items:center;font-size:16px;flex-shrink:0;
transition:all .3s;
}
.ci-item:hover .ci-icon{border-color:var(--cyan);box-shadow:var(--glow-c)}
.ci-text{}
.ci-label{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:2px;color:var(--txtdim);text-transform:uppercase}
.ci-val{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:2px;color:var(--txtbright);margin-top:2px}
.terminal-wrap{
background:rgba(2,6,12,.95);
border:1px solid var(--rim);overflow:hidden;
backdrop-filter:blur(20px);
position:relative;
}
.terminal-wrap::before{
content:'';position:absolute;inset:0;
background:linear-gradient(180deg,rgba(0,210,255,.015),transparent);
pointer-events:none;
}
.t-bar{
display:flex;align-items:center;gap:8px;
padding:12px 20px;background:rgba(0,0,0,.4);
border-bottom:1px solid var(--rim);
}
.t-dot{width:10px;height:10px;border-radius:50%}
.t-dot-r{background:#ff5f57}.t-dot-y{background:#ffbc2e}.t-dot-g{background:#2dc840}
.t-name{
margin-left:10px;font-family:'DM Mono',monospace;font-size:11px;
color:var(--txtdim);letter-spacing:2px;
}
.t-body{padding:28px;font-family:'DM Mono',monospace;font-size:12.5px;line-height:2.1}
.tl{display:block;opacity:0;animation:tlReveal .05s ease forwards}
@keyframes tlReveal{to{opacity:1}}
.tp{color:var(--cyan)}.tc{color:var(--txtbright)}.to{color:var(--txtdim)}
.ts{color:var(--lime)}.tw{color:var(--gold)}.te{color:var(--plasma)}
.ti{color:#60aaff}.th{color:#fff;font-weight:500}
.tcur{
display:inline-block;width:7px;height:13px;
background:var(--cyan);vertical-align:middle;
animation:blink .9s step-end infinite;margin-left:2px;
}
@keyframes blink{50%{opacity:0}}
footer{
position:relative;z-index:2;
background:var(--deep);
border-top:1px solid var(--rim);
}
.footer-top{
max-width:1600px;margin:0 auto;
padding:80px 80px 60px;
display:grid;grid-template-columns:2.5fr 1fr 1fr 1fr;gap:80px;
}
@media(max-width:1100px){.footer-top{grid-template-columns:1fr 1fr;gap:48px}}
@media(max-width:600px){.footer-top{grid-template-columns:1fr;padding:60px 24px 40px}}
.ft-brand{
font-family:'Bebas Neue',sans-serif;font-size:28px;letter-spacing:8px;
color:var(--cyan);text-shadow:var(--glow-c);margin-bottom:16px;
}
.ft-desc{font-size:13px;color:var(--txtdim);line-height:1.9;max-width:360px;margin-bottom:28px;font-weight:400}
.ft-badges{display:flex;gap:10px;flex-wrap:wrap}
.ft-badge{
font-family:'DM Mono',monospace;font-size:9px;letter-spacing:2px;
padding:6px 14px;border:1px solid var(--rim);color:var(--txtdim);
text-transform:uppercase;transition:all .3s;
}
.ft-badge:hover{border-color:rgba(0,210,255,.3);color:var(--cyan)}
.ft-col-title{
font-family:'Bebas Neue',sans-serif;font-size:14px;letter-spacing:4px;
color:var(--txtbright);text-transform:uppercase;margin-bottom:24px;
}
.ft-links{list-style:none;display:flex;flex-direction:column;gap:12px}
.ft-links a{
font-family:'DM Mono',monospace;font-size:11px;letter-spacing:1px;
color:var(--txtdim);text-decoration:none;transition:color .3s;
display:inline-flex;align-items:center;gap:8px;
}
.ft-links a::before{content:'›';color:var(--cyan);opacity:0;transform:translateX(-6px);transition:all .3s}
.ft-links a:hover{color:var(--txt);padding-left:8px}
.ft-links a:hover::before{opacity:1;transform:translateX(0)}
.footer-bottom{
max-width:1600px;margin:0 auto;
padding:24px 80px;
border-top:1px solid var(--rim);
display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;
}
@media(max-width:600px){.footer-bottom{padding:24px}}
.fb-copy{font-family:'DM Mono',monospace;font-size:10px;color:var(--txtdim);letter-spacing:1px}
.fb-status{display:flex;align-items:center;gap:10px;font-family:'DM Mono',monospace;font-size:10px;color:var(--txtdim)}
.fb-dot{width:5px;height:5px;background:var(--lime);border-radius:50%;animation:pulse 1.5s infinite;box-shadow:var(--glow-l)}
.holo-divider{
position:relative;z-index:2;height:1px;
background:linear-gradient(90deg,transparent,var(--cyan),var(--plasma),var(--cyan),transparent);
opacity:.2;
}
</style>
</head>
<body>
<!-- LOADER -->
<div id="LOADER">
<div class="ld-scan"></div>
<div class="ld-logo">NEXUS</div>
<div class="ld-sub">Zero-Day Intelligence Platform</div>
<div class="ld-progress"><div class="ld-bar"></div></div>
<div class="ld-pct" id="ldPct">LOADING... 0%</div>
</div>
<!-- CURSOR -->
<div id="C">
<div id="Cdot"></div>
<div id="Cring"></div>
<div id="Ccross"></div>
</div>
<!-- SCROLL PROGRESS -->
<div id="PROG"></div>
<!-- BACKGROUND -->
<div id="BG">
<div class="nb1 bg-nebula"></div>
<div class="nb2 bg-nebula"></div>
<div class="nb3 bg-nebula"></div>
<canvas id="bgCanvas"></canvas>
<div class="bg-grid"></div>
<div class="bg-scanlines"></div>
<div class="bg-vignette"></div>
</div>
<!-- NAV -->
<nav>
<div class="nav-glass"></div>
<div class="nav-brand">
<div class="nav-brand-mark"></div>
NEXUS
</div>
<div class="nav-center">
<a href="#hero" class="nav-item active">Intel</a>
<a href="#exploits" class="nav-item">Exploits</a>
<a href="#tools" class="nav-item">Arsenal</a>
<a href="#terminal-s" class="nav-item">Console</a>
<a href="#" class="nav-item">Reports</a>
</div>
<div class="nav-right">
<div class="nav-alert"></div>
<div class="nav-alert-txt">3 CRITICAL</div>
<a href="#" class="nav-btn">PORTAL →</a>
</div>
</nav>
<!-- ═══ HERO ═══ -->
<section id="hero" style="position:relative;z-index:2">
<div class="hero">
<div class="hero-left">
<div class="hero-eyebrow">
<div class="hero-eyebrow-line"></div>
<div class="hero-eyebrow-dot"></div>
CVE Intelligence · Real-Time
</div>
<h1 class="hero-title">
<span class="ht-sm">Global Threat</span>
<span class="ht-lg">ZERO</span>
<span class="ht-outline">DAY</span>
<span class="ht-accent">NEXUS</span>
</h1>
<p class="hero-desc">
The world's most advanced <em>exploit intelligence</em> platform.
Real-time CVE tracking, live PoC monitoring, and
<em>AI-powered threat correlation</em> trusted by elite red teams globally.
</p>
<div class="hero-actions">
<a href="#exploits" class="btn-glow">ENTER PLATFORM</a>
<a href="#tools" class="btn-ghost">VIEW ARSENAL</a>
</div>
<div class="hero-metrics">
<div class="metric">
<span class="metric-val" id="m1">0</span>
<span class="metric-lbl">CVEs Indexed</span>
</div>
<div class="metric">
<span class="metric-val" id="m2">0</span>
<span class="metric-lbl">Active Exploits</span>
</div>
<div class="metric">
<span class="metric-val" id="m3">0</span>
<span class="metric-lbl">Threats Today</span>
</div>
</div>
</div>
<div class="hero-right">
<div class="threat-display">
<div class="corner tl"></div><div class="corner tr"></div>
<div class="corner bl"></div><div class="corner br"></div>
<div class="td-header">
<span class="td-title">// live threat feed</span>
<span class="td-live"><div class="td-live-dot"></div>LIVE · AUTO-UPDATE</span>
</div>
<div class="td-body" id="liveRows">
<div class="cve-row crit">
<div class="cve-score-ring">
<svg viewBox="0 0 44 44"><circle cx="22" cy="22" r="18" fill="none" stroke="rgba(255,45,107,.15)" stroke-width="3"/><circle cx="22" cy="22" r="18" fill="none" stroke="#ff2d6b" stroke-width="3" stroke-dasharray="113" stroke-dashoffset="0" stroke-linecap="round"/></svg>
<div class="cve-score-val" style="color:var(--plasma)">10</div>
</div>
<div class="cve-info">
<div class="cve-id">CVE-2025-4200</div>
<div class="cve-name">Apache Struts Auth Bypass RCE</div>
<div class="cve-vendor">Apache Foundation</div>
</div>
<span class="cve-badge badge-new">NEW</span>
<span class="cve-badge badge-c">CRITICAL</span>
<span class="cve-time">2h ago</span>
</div>
<div class="cve-row crit">
<div class="cve-score-ring">
<svg viewBox="0 0 44 44"><circle cx="22" cy="22" r="18" fill="none" stroke="rgba(255,45,107,.15)" stroke-width="3"/><circle cx="22" cy="22" r="18" fill="none" stroke="#ff2d6b" stroke-width="3" stroke-dasharray="113" stroke-dashoffset="7" stroke-linecap="round"/></svg>
<div class="cve-score-val" style="color:var(--plasma)">9.9</div>
</div>
<div class="cve-info">
<div class="cve-id">CVE-2025-9102</div>
<div class="cve-name">glibc Heap Buffer Overflow → Root</div>
<div class="cve-vendor">GNU / Linux</div>
</div>
<span class="cve-badge badge-c">CRITICAL</span>
<span class="cve-badge badge-c">EXPLOIT</span>
<span class="cve-time">5h ago</span>
</div>
<div class="cve-row crit">
<div class="cve-score-ring">
<svg viewBox="0 0 44 44"><circle cx="22" cy="22" r="18" fill="none" stroke="rgba(255,45,107,.15)" stroke-width="3"/><circle cx="22" cy="22" r="18" fill="none" stroke="#ff2d6b" stroke-width="3" stroke-dasharray="113" stroke-dashoffset="11" stroke-linecap="round"/></svg>
<div class="cve-score-val" style="color:var(--plasma)">9.8</div>
</div>
<div class="cve-info">
<div class="cve-id">CVE-2025-0001</div>
<div class="cve-name">OpenSSH Pre-Auth RCE (regreSSHion)</div>
<div class="cve-vendor">OpenBSD Foundation</div>
</div>
<span class="cve-badge badge-c">CRITICAL</span>
<span class="cve-badge badge-c">WORM</span>
<span class="cve-time">12h ago</span>
</div>
<div class="cve-row high">
<div class="cve-score-ring">
<svg viewBox="0 0 44 44"><circle cx="22" cy="22" r="18" fill="none" stroke="rgba(255,122,0,.15)" stroke-width="3"/><circle cx="22" cy="22" r="18" fill="none" stroke="#ff7a00" stroke-width="3" stroke-dasharray="113" stroke-dashoffset="21" stroke-linecap="round"/></svg>
<div class="cve-score-val" style="color:#ff7a00">8.1</div>
</div>
<div class="cve-info">
<div class="cve-id">CVE-2025-1337</div>
<div class="cve-name">Linux Kernel nf_tables LPE</div>
<div class="cve-vendor">Linux Foundation</div>
</div>
<span class="cve-badge badge-h">HIGH</span>
<span class="cve-badge badge-h">PoC</span>
<span class="cve-time">1d ago</span>
</div>
</div>
<div class="td-footer">
<div class="td-foot-stat">SHOWING <span class="td-foot-val">4 of 2,847</span></div>
<a href="#exploits" class="td-more">VIEW ALL EXPLOITS →</a>
</div>
</div>
</div>
</div>
</section>
<!-- TICKER -->
<div class="ticker-section">
<div class="ticker-fade-l"></div>
<div class="ticker-fade-r"></div>
<div class="ticker-track" id="TK">
<div class="tk-item"><span class="tk-id">CVE-2025-4200</span><span class="tk-sep">//</span><span class="tk-score crit">CVSS 10.0</span><span class="tk-sep">·</span><span class="tk-vendor">Apache Struts 2.x</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-9102</span><span class="tk-sep">//</span><span class="tk-score crit">CVSS 9.9</span><span class="tk-sep">·</span><span class="tk-vendor">glibc ≤2.38</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-0001</span><span class="tk-sep">//</span><span class="tk-score crit">CVSS 9.8</span><span class="tk-sep">·</span><span class="tk-vendor">OpenSSH <9.8p1</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-5500</span><span class="tk-sep">//</span><span class="tk-score crit">CVSS 9.6</span><span class="tk-sep">·</span><span class="tk-vendor">Windows SMBv3</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-1337</span><span class="tk-sep">//</span><span class="tk-score high">CVSS 8.1</span><span class="tk-sep">·</span><span class="tk-vendor">Linux Kernel 6.8</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-7749</span><span class="tk-sep">//</span><span class="tk-score med">CVSS 6.5</span><span class="tk-sep">·</span><span class="tk-vendor">WordPress 6.4</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-2048</span><span class="tk-sep">//</span><span class="tk-score high">CVSS 7.8</span><span class="tk-sep">·</span><span class="tk-vendor">MySQL Connector</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-3301</span><span class="tk-sep">//</span><span class="tk-score crit">CVSS 9.3</span><span class="tk-sep">·</span><span class="tk-vendor">Cisco IOS XE</span></div>
<!-- dup -->
<div class="tk-item"><span class="tk-id">CVE-2025-4200</span><span class="tk-sep">//</span><span class="tk-score crit">CVSS 10.0</span><span class="tk-sep">·</span><span class="tk-vendor">Apache Struts 2.x</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-9102</span><span class="tk-sep">//</span><span class="tk-score crit">CVSS 9.9</span><span class="tk-sep">·</span><span class="tk-vendor">glibc ≤2.38</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-0001</span><span class="tk-sep">//</span><span class="tk-score crit">CVSS 9.8</span><span class="tk-sep">·</span><span class="tk-vendor">OpenSSH <9.8p1</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-5500</span><span class="tk-sep">//</span><span class="tk-score crit">CVSS 9.6</span><span class="tk-sep">·</span><span class="tk-vendor">Windows SMBv3</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-1337</span><span class="tk-sep">//</span><span class="tk-score high">CVSS 8.1</span><span class="tk-sep">·</span><span class="tk-vendor">Linux Kernel 6.8</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-7749</span><span class="tk-sep">//</span><span class="tk-score med">CVSS 6.5</span><span class="tk-sep">·</span><span class="tk-vendor">WordPress 6.4</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-2048</span><span class="tk-sep">//</span><span class="tk-score high">CVSS 7.8</span><span class="tk-sep">·</span><span class="tk-vendor">MySQL Connector</span></div>
<div class="tk-item"><span class="tk-id">CVE-2025-3301</span><span class="tk-sep">//</span><span class="tk-score crit">CVSS 9.3</span><span class="tk-sep">·</span><span class="tk-vendor">Cisco IOS XE</span></div>
</div>
</div>
<!-- STATS BELT -->
<div style="position:relative;z-index:2;background:var(--deep);border-bottom:1px solid var(--rim)">
<div style="max-width:1600px;margin:0 auto;padding:0 80px">
<div class="stats-belt rv">
<div class="stat-glass"><div class="stat-glass-icon">🔍</div><span class="stat-glass-num" id="s1">0</span><span class="stat-glass-sub">CVEs Tracked</span><div class="stat-glass-bar" id="sb1" style="width:0"></div></div>
<div class="stat-glass rv-d1"><div class="stat-glass-icon">💥</div><span class="stat-glass-num" id="s2">0</span><span class="stat-glass-sub">Active Exploits</span><div class="stat-glass-bar" id="sb2" style="width:0;background:linear-gradient(90deg,var(--plasma),transparent)"></div></div>
<div class="stat-glass rv-d2"><div class="stat-glass-icon">🎯</div><span class="stat-glass-num" id="s3">0</span><span class="stat-glass-sub">Attacks / Hour</span><div class="stat-glass-bar" id="sb3" style="width:0;background:linear-gradient(90deg,var(--gold),transparent)"></div></div>
<div class="stat-glass rv-d3"><div class="stat-glass-icon">🛡️</div><span class="stat-glass-num" id="s4">0</span><span class="stat-glass-sub">Patches Released</span><div class="stat-glass-bar" id="sb4" style="width:0;background:linear-gradient(90deg,var(--lime),transparent)"></div></div>
<div class="stat-glass rv-d4"><div class="stat-glass-icon">🌐</div><span class="stat-glass-num" id="s5">0</span><span class="stat-glass-sub">Nations Monitored</span><div class="stat-glass-bar" id="sb5" style="width:0"></div></div>
</div>
</div>
</div>
<!-- EXPLOITS TABLE -->
<section id="exploits" class="S">
<div style="display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:60px" class="rv">
<div>
<div class="S-tag"><div class="S-tag-line"></div>Live Database</div>
<h2 class="S-title">EXPLOIT <span class="dim">INDEX</span></h2>
</div>
<div style="display:flex;gap:8px">
<button onclick="filterTable('all')" class="nav-btn" id="fb-all" style="background:rgba(0,210,255,.1)">ALL</button>
<button onclick="filterTable('crit')" class="nav-btn" id="fb-crit">CRITICAL</button>
<button onclick="filterTable('high')" class="nav-btn" id="fb-high">HIGH</button>
</div>
</div>
<div class="exploit-table rv rv-d1">
<div class="et-header">
<span>CVE ID</span><span>Vulnerability</span><span>Vendor</span>
<span style="text-align:center">CVSS</span>
<span style="text-align:center">Type</span>
<span style="text-align:center">Status</span>
</div>
<div id="exploitBody">
<div class="et-row" data-sev="crit">
<div class="et-id">CVE-2025-4200</div>
<div><div class="et-name">Apache Struts Auth Bypass RCE</div><div class="et-name-sub">OGNL Expression Injection</div></div>
<div class="et-vendor">Apache</div>
<div class="et-score sc-c">10.0</div>
<div class="et-type"><span class="cve-badge badge-c">RCE</span></div>
<div class="et-act act-exploit"><div class="et-act-dot"></div>EXPLOITED</div>
</div>
<div class="et-row" data-sev="crit">
<div class="et-id">CVE-2025-9102</div>
<div><div class="et-name">glibc Heap Buffer Overflow</div><div class="et-name-sub">Privilege Escalation to Root</div></div>
<div class="et-vendor">GNU</div>
<div class="et-score sc-c">9.9</div>
<div class="et-type"><span class="cve-badge badge-c">LPE</span></div>
<div class="et-act act-exploit"><div class="et-act-dot"></div>EXPLOITED</div>
</div>
<div class="et-row" data-sev="crit">
<div class="et-id">CVE-2025-0001</div>
<div><div class="et-name">OpenSSH regreSSHion</div><div class="et-name-sub">Pre-auth Remote Code Execution</div></div>
<div class="et-vendor">OpenBSD</div>
<div class="et-score sc-c">9.8</div>
<div class="et-type"><span class="cve-badge badge-c">RCE</span></div>
<div class="et-act act-exploit"><div class="et-act-dot"></div>EXPLOITED</div>
</div>
<div class="et-row" data-sev="crit">
<div class="et-id">CVE-2025-5500</div>
<div><div class="et-name">Windows SMBv3 Zero-Day</div><div class="et-name-sub">Wormable Remote Code Execution</div></div>
<div class="et-vendor">Microsoft</div>
<div class="et-score sc-c">9.6</div>
<div class="et-type"><span class="cve-badge badge-c">WORM</span></div>
<div class="et-act act-poc"><div class="et-act-dot"></div>UNPATCHED</div>
</div>
<div class="et-row" data-sev="crit">
<div class="et-id">CVE-2025-3301</div>
<div><div class="et-name">Cisco IOS XE Web UI RCE</div><div class="et-name-sub">Unauthenticated Command Injection</div></div>
<div class="et-vendor">Cisco</div>
<div class="et-score sc-c">9.3</div>
<div class="et-type"><span class="cve-badge badge-c">RCE</span></div>
<div class="et-act act-poc"><div class="et-act-dot"></div>PoC PUBLIC</div>
</div>
<div class="et-row" data-sev="high">
<div class="et-id">CVE-2025-1337</div>
<div><div class="et-name">Linux Kernel nf_tables LPE</div><div class="et-name-sub">Use-After-Free in Netfilter</div></div>
<div class="et-vendor">Linux</div>
<div class="et-score sc-h">8.1</div>
<div class="et-type"><span class="cve-badge badge-h">LPE</span></div>
<div class="et-act act-poc"><div class="et-act-dot"></div>PoC PUBLIC</div>
</div>
<div class="et-row" data-sev="high">
<div class="et-id">CVE-2025-2048</div>
<div><div class="et-name">MySQL Connector/J SQLi</div><div class="et-name-sub">SQL Injection via JDBC URL</div></div>
<div class="et-vendor">Oracle</div>
<div class="et-score sc-h">7.8</div>
<div class="et-type"><span class="cve-badge badge-h">SQLI</span></div>
<div class="et-act act-patch"><div class="et-act-dot"></div>PATCHED</div>
</div>
</div>
</div>
</section>
<!-- ATTACK CANVAS SECTION -->
<div class="canvas-section">
<div class="canvas-inner">
<div class="rv-left">
<div class="S-tag"><div class="S-tag-line"></div>Global Telemetry</div>
<h2 class="S-title" style="margin-bottom:8px">LIVE <span class="grad">ATTACK</span></h2>
<h2 class="S-title"><span class="dim">SURFACE</span></h2>
<p class="S-sub" style="margin-top:16px;margin-bottom:0">Real-time visualization of global CVE exploitation attempts across monitored infrastructure. Each node represents an active threat vector.</p>
<div class="canvas-info">
<div class="ci-item"><div class="ci-icon">⚡</div><div class="ci-text"><div class="ci-label">Attacks per minute</div><div class="ci-val" id="apm">847</div></div></div>
<div class="ci-item"><div class="ci-icon">🌍</div><div class="ci-text"><div class="ci-label">Source countries</div><div class="ci-val" id="src">143</div></div></div>
<div class="ci-item"><div class="ci-icon">🔴</div><div class="ci-text"><div class="ci-label">Critical targets</div><div class="ci-val" id="ct">29</div></div></div>
</div>
</div>
<div class="rv-right">
<canvas id="attackCanvas"></canvas>
</div>
</div>
</div>
<!-- TOOLS / ARSENAL -->
<section id="tools" class="S">
<div class="section-header rv" style="margin-bottom:64px">
<div class="S-tag"><div class="S-tag-line"></div>Security Arsenal</div>
<h2 class="S-title">RESEARCH <span class="dim">TOOLKIT</span></h2>
<p class="S-sub" style="margin-top:16px">Professional-grade tools for vulnerability research, exploit development, and threat hunting.</p>
</div>
<div class="intel-grid">
<div class="intel-card rv rv-d1">
<span class="ic-num">// 01</span>
<span class="ic-icon">🔬</span>
<div class="ic-title">CVE SCANNER</div>
<p class="ic-desc">Automated vulnerability detection across your entire attack surface. Real-time NVD correlation with prioritized remediation guidance.</p>
<div class="ic-tags"><span class="ic-tag">NMAP</span><span class="ic-tag">OPENVAS</span><span class="ic-tag">API</span><span class="ic-tag">CIDR</span></div>
<a href="#" class="ic-link">LAUNCH SCANNER →</a>
</div>
<div class="intel-card rv rv-d2">
<span class="ic-num">// 02</span>
<span class="ic-icon">💣</span>
<div class="ic-title">EXPLOIT DB</div>
<p class="ic-desc">180K+ curated exploits with PoC code. Filter by CVE, platform, technique, or reliability score. Direct Metasploit module integration.</p>
<div class="ic-tags"><span class="ic-tag">METASPLOIT</span><span class="ic-tag">POC</span><span class="ic-tag">SHELLCODE</span></div>
<a href="#" class="ic-link">BROWSE EXPLOITS →</a>
</div>
<div class="intel-card rv rv-d3">
<span class="ic-num">// 03</span>
<span class="ic-icon">🌐</span>
<div class="ic-title">THREAT INTEL</div>
<p class="ic-desc">Aggregated IOC feeds from 40+ global sources. MITRE ATT&CK TTP mapping, STIX/TAXII export, and automated SIEM ingestion.</p>
<div class="ic-tags"><span class="ic-tag">MITRE</span><span class="ic-tag">STIX</span><span class="ic-tag">IOC</span><span class="ic-tag">TAXII</span></div>
<a href="#" class="ic-link">VIEW INTEL →</a>
</div>
<div class="intel-card rv rv-d4">
<span class="ic-num">// 04</span>
<span class="ic-icon">🔐</span>
<div class="ic-title">PENTEST SUITE</div>
<p class="ic-desc">End-to-end penetration testing workflow. From passive recon to active exploitation and automated executive report generation.</p>
<div class="ic-tags"><span class="ic-tag">BURP</span><span class="ic-tag">FFUF</span><span class="ic-tag">SQLMAP</span></div>
<a href="#" class="ic-link">START PENTEST →</a>
</div>
<div class="intel-card rv rv-d5">
<span class="ic-num">// 05</span>
<span class="ic-icon">📡</span>
<div class="ic-title">PATCH TRACKER</div>
<p class="ic-desc">Monitor vendor patch cycles across 500+ software vendors. Auto-alert on critical missing patches with zero false positives.</p>
<div class="ic-tags"><span class="ic-tag">ALERTS</span><span class="ic-tag">VENDOR</span><span class="ic-tag">SIEM</span></div>
<a href="#" class="ic-link">TRACK PATCHES →</a>
</div>
<div class="intel-card rv rv-d6">
<span class="ic-num">// 06</span>
<span class="ic-icon">🤖</span>
<div class="ic-title">AI CORRELATION</div>
<p class="ic-desc">Machine learning models predict exploit probability (EPSS+), chain vulnerabilities across your network, and auto-generate risk reports.</p>
<div class="ic-tags"><span class="ic-tag">ML</span><span class="ic-tag">EPSS</span><span class="ic-tag">LLM</span><span class="ic-tag">NLP</span></div>
<a href="#" class="ic-link">AI CONSOLE →</a>
</div>
</div>
</section>
<div class="holo-divider"></div>
<!-- TERMINAL -->
<section id="terminal-s" class="S" style="padding-top:100px;padding-bottom:120px">
<div style="text-align:center;margin-bottom:60px" class="rv">
<div class="S-tag" style="justify-content:center;display:flex"><div class="S-tag-line"></div>Interactive Console</div>
<h2 class="S-title">NEXUS <span class="dim">TERMINAL</span></h2>
</div>
<div class="terminal-wrap rv rv-d1" style="max-width:900px;margin:0 auto">
<div class="t-bar">
<div class="t-dot t-dot-r"></div><div class="t-dot t-dot-y"></div><div class="t-dot t-dot-g"></div>
<div class="t-name">nexus-cli v4.2.1 — THREAT INTELLIGENCE CONSOLE</div>
</div>
<div class="t-body">
<span class="tl" style="animation-delay:.1s"><span class="ti">[ NEXUS ] </span><span class="to">Connecting to intelligence network...</span></span>
<span class="tl" style="animation-delay:.6s"><span class="ts">✓ </span><span class="to">Linked: NVD, ExploitDB, MITRE ATT&CK, CISA KEV, 37 threat feeds</span></span>
<span class="tl" style="animation-delay:1.1s"><span class="ts">✓ </span><span class="to">AI correlation engine: ONLINE · EPSS model: v3.1</span></span>
<span class="tl" style="animation-delay:1.4s"> </span>
<span class="tl" style="animation-delay:1.7s"><span class="tp">nexus@intel:~$ </span><span class="tc">scan --cve CVE-2025-4200 --deep --threat-hunt</span></span>
<span class="tl" style="animation-delay:2.2s"><span class="to"> ┌─ Fetching CVE record from NVD... </span><span class="ts">done</span></span>
<span class="tl" style="animation-delay:2.6s"><span class="to"> ├─ Cross-referencing CISA KEV... </span><span class="te">FOUND — actively exploited</span></span>
<span class="tl" style="animation-delay:3.0s"><span class="to"> ├─ Scanning ExploitDB (180K entries)... </span><span class="tw">3 public PoCs found</span></span>
<span class="tl" style="animation-delay:3.4s"><span class="to"> └─ EPSS score: </span><span class="te">97.3% </span><span class="to">(exploitation likely in 30 days)</span></span>
<span class="tl" style="animation-delay:3.7s"> </span>
<span class="tl" style="animation-delay:3.9s"><span class="to"> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</span></span>
<span class="tl" style="animation-delay:4.0s"><span class="th"> ID </span><span class="to">: CVE-2025-4200</span></span>
<span class="tl" style="animation-delay:4.1s"><span class="th"> CVSS 3.1 </span><span class="te">: 10.0 CRITICAL</span></span>
<span class="tl" style="animation-delay:4.2s"><span class="th"> Vector </span><span class="to">: AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H</span></span>
<span class="tl" style="animation-delay:4.3s"><span class="th"> Affected </span><span class="to">: Apache Struts 2.0.0–2.5.33 (est. 430K hosts)</span></span>
<span class="tl" style="animation-delay:4.4s"><span class="th"> Patch </span><span class="ts">: 2.5.34 AVAILABLE — upgrade immediately</span></span>
<span class="tl" style="animation-delay:4.5s"><span class="th"> PoC </span><span class="tw">: PUBLIC — GitHub refs: CVE-2025-4200-PoC</span></span>
<span class="tl" style="animation-delay:4.6s"><span class="th"> Threat </span><span class="te">: APT-SANDWORM, LAZARUS active exploitation confirmed</span></span>
<span class="tl" style="animation-delay:4.7s"><span class="to"> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</span></span>
<span class="tl" style="animation-delay:4.8s"> </span>
<span class="tl" style="animation-delay:5.0s"><span class="tp">nexus@intel:~$ </span><span class="tcur"></span></span>
</div>
</div>
</section>
<!-- FOOTER -->
<footer>
<div class="footer-top">
<div class="rv">
<div class="ft-brand">NEXUS</div>
<p class="ft-desc">The world's most advanced CVE intelligence and exploit tracking platform. Built for elite security teams, red teams, and threat researchers.</p>
<div class="ft-badges">
<span class="ft-badge">SOC 2 TYPE II</span>
<span class="ft-badge">ISO 27001</span>
<span class="ft-badge">CVSS 3.1</span>
<span class="ft-badge">STIX 2.1</span>
</div>
</div>
<div class="rv rv-d1">
<div class="ft-col-title">Platform</div>
<ul class="ft-links">
<li><a href="#">CVE Database</a></li>
<li><a href="#">Exploit Search</a></li>
<li><a href="#">Threat Map</a></li>
<li><a href="#">Patch Tracker</a></li>
<li><a href="#">AI Correlation</a></li>
<li><a href="#">API Access</a></li>
</ul>
</div>
<div class="rv rv-d2">
<div class="ft-col-title">Research</div>
<ul class="ft-links">
<li><a href="#">Security Blog</a></li>
<li><a href="#">Advisories</a></li>
<li><a href="#">PoC Library</a></li>
<li><a href="#">Red Team Tools</a></li>
<li><a href="#">CTF Writeups</a></li>
</ul>
</div>
<div class="rv rv-d3">
<div class="ft-col-title">Company</div>
<ul class="ft-links">
<li><a href="#">About Nexus</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">Responsible Disclosure</a></li>
<li><a href="#">Privacy Policy</a></li>
<li><a href="#">Legal</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<div class="fb-copy">© 2025 NEXUS INTELLIGENCE LABS · FOR AUTHORIZED SECURITY RESEARCH ONLY</div>
<div class="fb-status"><div class="fb-dot"></div>ALL SYSTEMS OPERATIONAL · v4.2.1 · BUILD 20250304</div>
</div>
</footer>
<script>
/* ─── LOADER ─── */
let pct = 0;
const ldPct = document.getElementById('ldPct');
const ldInterval = setInterval(() => {
pct = Math.min(pct + (Math.random() * 4 + 1), 100);
ldPct.textContent = `LOADING... ${Math.floor(pct)}%`;
if (pct >= 100) {
clearInterval(ldInterval);
ldPct.textContent = 'READY';
setTimeout(() => { document.getElementById('LOADER').classList.add('exit'); }, 200);
}
}, 40);
/* ─── CURSOR ─── */
const Cdot = document.getElementById('Cdot');
const Cring = document.getElementById('Cring');
const Ccross = document.getElementById('Ccross');
let mx = 0, my = 0, rx = 0, ry = 0;
document.addEventListener('mousemove', e => {
mx = e.clientX; my = e.clientY;
Cdot.style.left = mx + 'px'; Cdot.style.top = my + 'px';
Ccross.style.left = mx + 'px'; Ccross.style.top = my + 'px';
});
(function lerpRing() {
rx += (mx - rx) * .1; ry += (my - ry) * .1;
Cring.style.left = rx + 'px'; Cring.style.top = ry + 'px';
requestAnimationFrame(lerpRing);
})();
const hoverEls = document.querySelectorAll('a,button,.cve-row,.et-row,.intel-card,.stat-glass,.metric');
hoverEls.forEach(el => {
el.addEventListener('mouseenter', () => {
Cdot.style.width = '16px'; Cdot.style.height = '16px';
Cring.style.width = '52px'; Cring.style.height = '52px';
Cring.style.borderColor = 'rgba(0,210,255,.8)';
Cring.style.transform = 'translate(-50%,-50%) rotate(45deg)';
});
el.addEventListener('mouseleave', () => {
Cdot.style.width = '8px'; Cdot.style.height = '8px';
Cring.style.width = '32px'; Cring.style.height = '32px';
Cring.style.borderColor = 'rgba(0,210,255,.5)';
Cring.style.transform = 'translate(-50%,-50%) rotate(0deg)';
});
});
/* ─── SCROLL PROGRESS ─── */
const PROG = document.getElementById('PROG');
window.addEventListener('scroll', () => {
const p = window.scrollY / (document.body.scrollHeight - window.innerHeight);
PROG.style.transform = `scaleX(${p})`;
});
/* ─── BG PARTICLE CANVAS ─── */
const bgC = document.getElementById('bgCanvas');
bgC.width = window.innerWidth; bgC.height = window.innerHeight;
const bgX = bgC.getContext('2d');
const pts = Array.from({length:120}, () => ({
x: Math.random() * bgC.width, y: Math.random() * bgC.height,
vx: (Math.random()-.5)*.25, vy: (Math.random()-.5)*.25,
r: Math.random()*1.5+.3,
c: Math.random()<.3 ? '#ff2d6b' : Math.random()<.5 ? '#00d2ff' : '#ffffff'
}));
function drawBG() {
bgX.clearRect(0,0,bgC.width,bgC.height);
// connections
pts.forEach((a,i) => pts.slice(i+1).forEach(b => {
const d = Math.hypot(a.x-b.x, a.y-b.y);
if (d < 120) {
bgX.strokeStyle = `rgba(0,210,255,${.05*(1-d/120)})`;
bgX.lineWidth = .5;
bgX.beginPath(); bgX.moveTo(a.x,a.y); bgX.lineTo(b.x,b.y); bgX.stroke();
}
}));
pts.forEach(p => {
p.x += p.vx; p.y += p.vy;
if (p.x<0||p.x>bgC.width) p.vx*=-1;
if (p.y<0||p.y>bgC.height) p.vy*=-1;
bgX.fillStyle = p.c;
bgX.globalAlpha = .4;
bgX.shadowBlur = 6; bgX.shadowColor = p.c;
bgX.beginPath(); bgX.arc(p.x,p.y,p.r,0,Math.PI*2); bgX.fill();
bgX.globalAlpha = 1; bgX.shadowBlur = 0;
});
requestAnimationFrame(drawBG);
}
drawBG();
window.addEventListener('resize', () => { bgC.width = window.innerWidth; bgC.height = window.innerHeight; });
/* ─── ATTACK CANVAS ─── */
const ac = document.getElementById('attackCanvas');
ac.width = ac.offsetWidth || 600; ac.height = ac.offsetHeight || 380;
const ax = ac.getContext('2d');
const anodes = Array.from({length:60}, () => ({
x: Math.random()*ac.width, y: Math.random()*ac.height,
vx: (Math.random()-.5)*.5, vy: (Math.random()-.5)*.5,
r: Math.random()*2.5+.5,
type: ['crit','crit','high','normal','normal','normal'][Math.floor(Math.random()*6)]
}));
const apkts = [];
function spawnAPkt() {
if(apkts.length<25){
const f = anodes[Math.floor(Math.random()*anodes.length)];
const t = anodes[Math.floor(Math.random()*anodes.length)];
apkts.push({f,t,p:0,spd:.006+Math.random()*.012,type:f.type});
}
}
setInterval(spawnAPkt,250);
const typeColor = {crit:'#ff2d6b',high:'#ff7a00',normal:'#00d2ff'};
function drawAttack() {
ax.clearRect(0,0,ac.width,ac.height);
ax.fillStyle='rgba(2,4,10,.5)';ax.fillRect(0,0,ac.width,ac.height);
// grid
ax.strokeStyle='rgba(0,210,255,.03)';ax.lineWidth=1;
for(let x=0;x<ac.width;x+=50){ax.beginPath();ax.moveTo(x,0);ax.lineTo(x,ac.height);ax.stroke()}
for(let y=0;y<ac.height;y+=50){ax.beginPath();ax.moveTo(0,y);ax.lineTo(ac.width,y);ax.stroke()}
// connections
anodes.forEach((a,i)=>anodes.slice(i+1).forEach(b=>{
const d=Math.hypot(a.x-b.x,a.y-b.y);
if(d<90){
ax.strokeStyle=`rgba(0,210,255,${.05*(1-d/90)})`;
ax.lineWidth=.5;ax.beginPath();ax.moveTo(a.x,a.y);ax.lineTo(b.x,b.y);ax.stroke();
}
}));
// packets
for(let i=apkts.length-1;i>=0;i--){
const pk=apkts[i];pk.p+=pk.spd;
if(pk.p>=1){apkts.splice(i,1);continue}
const x=pk.f.x+(pk.t.x-pk.f.x)*pk.p, y=pk.f.y+(pk.t.y-pk.f.y)*pk.p;
const col=typeColor[pk.type];
ax.fillStyle=col;ax.shadowBlur=12;ax.shadowColor=col;
ax.beginPath();ax.arc(x,y,2.5,0,Math.PI*2);ax.fill();
// trail
const tx2=pk.f.x+(pk.t.x-pk.f.x)*Math.max(0,pk.p-.12);
const ty2=pk.f.y+(pk.t.y-pk.f.y)*Math.max(0,pk.p-.12);
ax.strokeStyle=`${col}44`;ax.lineWidth=1.5;
ax.beginPath();ax.moveTo(tx2,ty2);ax.lineTo(x,y);ax.stroke();
ax.shadowBlur=0;
}
// nodes
anodes.forEach(n=>{
n.x+=n.vx;n.y+=n.vy;
if(n.x<0||n.x>ac.width)n.vx*=-1;
if(n.y<0||n.y>ac.height)n.vy*=-1;
const col=typeColor[n.type];
ax.fillStyle=col;ax.shadowBlur=8;ax.shadowColor=col;
ax.beginPath();ax.arc(n.x,n.y,n.r,0,Math.PI*2);ax.fill();
ax.shadowBlur=0;
if(n.type==='crit'){
ax.strokeStyle=`${col}33`;ax.lineWidth=1;
ax.beginPath();ax.arc(n.x,n.y,n.r*4+Math.sin(Date.now()*.003)*3,0,Math.PI*2);ax.stroke();
}
});
requestAnimationFrame(drawAttack);
}
drawAttack();
/* ─── COUNTER ANIMATION ─── */
function cntUp(el,target,fmt){
let c=0;const s=target/70;
const t=setInterval(()=>{
c=Math.min(c+s,target);
el.textContent=fmt(Math.floor(c));
if(c>=target)clearInterval(t);
},22);
}
function fmt1(n){return n>=1000?Math.floor(n/1000)+'K':n}
function fmtN(n){return n.toString()}
setTimeout(()=>{
cntUp(document.getElementById('m1'),247,'n=>n+"K"');
cntUp(document.getElementById('m2'),1294,fmtN);
cntUp(document.getElementById('m3'),847,fmtN);
cntUp(document.getElementById('s1'),247391,n=>n>=1000?Math.floor(n/1000)+'K':n);
cntUp(document.getElementById('s2'),1294,n=>n.toLocaleString());
cntUp(document.getElementById('s3'),847,n=>n.toLocaleString());
cntUp(document.getElementById('s4'),12443,n=>n>=1000?Math.floor(n/1000)+'K':n);
cntUp(document.getElementById('s5'),195,fmtN);
// stat bars
setTimeout(()=>{
document.getElementById('sb1').style.width='90%';
document.getElementById('sb2').style.width='70%';
document.getElementById('sb3').style.width='85%';
document.getElementById('sb4').style.width='60%';
document.getElementById('sb5').style.width='98%';
},500);
// hero metrics
cntUp(document.getElementById('m1'),247,n=>n+'K');
cntUp(document.getElementById('m2'),1294,fmtN);
cntUp(document.getElementById('m3'),847,fmtN);
}, 2800);
/* ─── REVEAL ON SCROLL ─── */
const revObs = new IntersectionObserver(es=>{
es.forEach(e=>{if(e.isIntersecting)e.target.classList.add('on')});
},{threshold:.1});
document.querySelectorAll('.rv,.rv-left,.rv-right,.rv-scale').forEach(el=>revObs.observe(el));
/* ─── TABLE FILTER ─── */
function filterTable(sev){
['all','crit','high'].forEach(s=>{
document.getElementById('fb-'+s).style.background='';
document.getElementById('fb-'+s).style.color='';
});
document.getElementById('fb-'+sev).style.background='rgba(0,210,255,.1)';
document.getElementById('fb-'+sev).style.color='var(--cyan)';
document.querySelectorAll('.et-row').forEach(row=>{
if(sev==='all') row.style.display='';
else row.style.display = row.dataset.sev===sev ? '' : 'none';
});
}
/* ─── LIVE ROW INJECTION ─── */
const freshCVEs = [
{id:'CVE-2025-8801',name:'Nginx HTTP/2 Rapid Reset DoS',vendor:'F5/Nginx',cvss:'9.1',sev:'crit',type:'DOS',status:'EXPLOITED',ago:'just now'},
{id:'CVE-2025-7070',name:'VMware vCenter SSRF → RCE',vendor:'Broadcom',cvss:'9.4',sev:'crit',type:'RCE',status:'PoC PUBLIC',ago:'3m ago'},
{id:'CVE-2025-6612',name:'Chrome V8 Type Confusion',vendor:'Google',cvss:'8.8',sev:'high',type:'RCE',status:'EXPLOITED',ago:'8m ago'},
];
let fIdx=0;
setInterval(()=>{
if(!document.getElementById('liveRows'))return;
const d=freshCVEs[fIdx++%freshCVEs.length];
const color=d.sev==='crit'?'#ff2d6b':'#ff7a00';
const score=parseFloat(d.cvss);
const circ=Math.round(113*(score/10));
const row=document.createElement('div');
row.className=`cve-row ${d.sev} new-row`;
row.style.animation='rowSlideIn .5s ease';
row.innerHTML=`
<div class="cve-score-ring">
<svg viewBox="0 0 44 44"><circle cx="22" cy="22" r="18" fill="none" stroke="${color}22" stroke-width="3"/><circle cx="22" cy="22" r="18" fill="none" stroke="${color}" stroke-width="3" stroke-dasharray="113" stroke-dashoffset="${113-circ}" stroke-linecap="round"/></svg>
<div class="cve-score-val" style="color:${color}">${d.cvss}</div>
</div>
<div class="cve-info"><div class="cve-id">${d.id}</div><div class="cve-name">${d.name}</div><div class="cve-vendor">${d.vendor}</div></div>
<span class="cve-badge badge-new">NEW</span>
<span class="cve-badge ${d.sev==='crit'?'badge-c':'badge-h'}">${d.sev.toUpperCase()}</span>
<span class="cve-time">${d.ago}</span>`;
const rows=document.getElementById('liveRows');
rows.insertBefore(row,rows.children[1]);
if(rows.children.length>6) rows.removeChild(rows.lastChild);
}, 6000);
/* ─── APM LIVE UPDATE ─── */
setInterval(()=>{
const v=820+Math.floor(Math.random()*80);
const apm=document.getElementById('apm');
if(apm) apm.textContent=v.toLocaleString();
},2000);
/* ─── NAV ACTIVE ─── */
const sections=['hero','exploits','tools','terminal-s'];
const obs=new IntersectionObserver(es=>{
es.forEach(e=>{
if(e.isIntersecting){
document.querySelectorAll('.nav-item').forEach(a=>a.classList.remove('active'));
const link=document.querySelector(`.nav-item[href="#${e.target.id}"]`);
if(link)link.classList.add('active');
}
});
},{threshold:.4});
sections.forEach(id=>{const el=document.getElementById(id);if(el)obs.observe(el)});
</script>
</body>
</html>


