.elementor-15111 .elementor-element.elementor-element-6fb7604{--display:flex;}/* Start custom CSS for html, class: .elementor-element-de04a55 *//* ============================================================
   RESET &amp; BASE
   ============================================================ */
html{scroll-behavior:smooth;font-size:16px}
body{
  background:
    radial-gradient(ellipse at 20% 50%, rgba(0,240,255,.04) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 50%, rgba(0,255,65,.03) 0%, transparent 60%),
    linear-gradient(180deg,#0a0e17 0%,#0d1525 50%,#0a0e17 100%);
  color:#c8d6e5;
  line-height:1.75;
  overflow-x:hidden;
}
a{color:#8b5cf6;text-decoration:none;transition:color .3s,text-shadow .3s}
a:hover{color:#a78bfa;text-shadow:0 0 10px rgba(139,92,246,.45)}
a:focus-visible{outline:2px solid #8b5cf6;outline-offset:3px;border-radius:3px}
h1,h2,h3,h4{font-family:'Inter',sans-serif;color:#f0f0f5;font-weight:700;line-height:1.3}
code,.mono{font-family:'JetBrains Mono','Share Tech Mono',monospace}
img{max-width:100%;display:block}

/* ============================================================
   SCROLLBAR
   ============================================================ */
::-webkit-scrollbar{width:7px}
::-webkit-scrollbar-track{background:#0a0e17}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#8b5cf6,#a78bfa);border-radius:4px}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

/* ============================================================
   CONTAINER
   ============================================================ */
.container{max-width:1100px;margin:0 auto;padding:0 1.5rem}

/* ============================================================
   HEADER (uses body default background)
   ============================================================ */
.header{
  position:relative;z-index:2;
  padding:4rem 1.5rem 2rem;
  text-align:center;
}
.header-tag{
  display:inline-block;
  font-family:'JetBrains Mono',monospace;
  font-size:.68rem;letter-spacing:3px;text-transform:uppercase;
  color:#8b5cf6;
  border:1px solid rgba(139,92,246,.3);
  padding:.28rem 1rem;border-radius:20px;
  margin-bottom:1rem;
  animation:tagPulse 3s ease-in-out infinite;
}
@keyframes tagPulse{
  0%,100%{box-shadow:0 0 8px rgba(139,92,246,.2)}
  50%{box-shadow:0 0 22px rgba(139,92,246,.45)}
}
.header h1{
  font-size:clamp(2rem,5vw,3.4rem);
  background:linear-gradient(135deg,#8b5cf6 0%,#a78bfa 40%,#8b5cf6 80%);
  background-size:200% auto;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
  animation:heroGradient 4s linear infinite;
  margin-bottom:.5rem;
}
@keyframes heroGradient{
  0%{background-position:0% center}
  100%{background-position:200% center}
}
.header .subtitle{
  font-family:'JetBrains Mono',monospace;
  font-size:.88rem;color:#5a6a7a;
  overflow:hidden;white-space:nowrap;
  max-width:700px;margin:0 auto;
  border-right:2px solid #8b5cf6;
  animation:heroTyping 8s steps(90,end) infinite,heroBlink .6s step-end infinite alternate;
}
@keyframes heroTyping{
  0%{max-width:0}
  40%{max-width:700px}
  80%{max-width:700px}
  100%{max-width:0}
}
@keyframes heroBlink{50%{border-color:transparent}}
.header .tactic-badge{
  display:inline-block;
  font-family:'JetBrains Mono',monospace;
  font-size:.62rem;letter-spacing:1.5px;
  color:#a78bfa;
  border:1px solid rgba(139,92,246,.2);
  padding:.2rem .7rem;border-radius:4px;
  margin-top:.8rem;
}

/* ============================================================
   SECTION BASE STYLES
   ============================================================ */
.section{padding:5rem 0;position:relative;z-index:1}
.section-header{text-align:center;margin-bottom:3rem}
.section-header .section-tag{
  display:inline-block;
  font-family:'JetBrains Mono',monospace;
  font-size:.68rem;letter-spacing:2px;text-transform:uppercase;
  color:#8b5cf6;margin-bottom:.5rem;
}
.section-header h2{
  font-size:clamp(1.4rem,3vw,2.1rem);
  background:linear-gradient(90deg,#f0f0f5,#8b5cf6);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.section-header .divider{
  width:60px;height:3px;margin:1rem auto 0;
  background:linear-gradient(90deg,#8b5cf6,#a78bfa);border-radius:2px;
}

/* ============================================================
   NOISE OVERLAY
   ============================================================ */
.noise-overlay{
  position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.015;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============================================================
   FLOATING PARTICLES
   ============================================================ */
.particles{
  position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;
}
.particle{
  position:absolute;width:2px;height:2px;
  background:rgba(139,92,246,.35);border-radius:50%;
  animation:particleFloat linear infinite;
}
.particle:nth-child(1){left:3%;width:2px;height:2px;animation-duration:14s;animation-delay:0s}
.particle:nth-child(2){left:12%;width:1px;height:1px;animation-duration:19s;animation-delay:2s;background:rgba(167,139,250,.25)}
.particle:nth-child(3){left:24%;width:3px;height:3px;animation-duration:12s;animation-delay:4s}
.particle:nth-child(4){left:36%;width:1px;height:1px;animation-duration:22s;animation-delay:1s;background:rgba(167,139,250,.3)}
.particle:nth-child(5){left:48%;width:2px;height:2px;animation-duration:17s;animation-delay:3s}
.particle:nth-child(6){left:58%;width:1px;height:1px;animation-duration:20s;animation-delay:5s;background:rgba(139,92,246,.2)}
.particle:nth-child(7){left:67%;width:2px;height:2px;animation-duration:15s;animation-delay:2.5s}
.particle:nth-child(8){left:78%;width:1px;height:1px;animation-duration:18s;animation-delay:0.5s;background:rgba(167,139,250,.2)}
.particle:nth-child(9){left:87%;width:3px;height:3px;animation-duration:13s;animation-delay:6s;background:rgba(139,92,246,.18)}
.particle:nth-child(10){left:95%;width:1px;height:1px;animation-duration:21s;animation-delay:1.5s}
.particle:nth-child(11){left:8%;width:2px;height:2px;animation-duration:23s;animation-delay:7s}
.particle:nth-child(12){left:42%;width:1px;height:1px;animation-duration:16s;animation-delay:8s;background:rgba(167,139,250,.15)}
@keyframes particleFloat{
  0%{transform:translateY(100vh) translateX(0);opacity:0}
  10%{opacity:1}
  90%{opacity:1}
  100%{transform:translateY(-10vh) translateX(25px);opacity:0}
}

/* ============================================================
   DNS TUNNEL SIMULATION
   ============================================================ */
.sim-wrapper{
  position:relative;z-index:1;
  width:100%;max-width:960px;
  margin:0 auto;
  display:flex;flex-direction:column;align-items:center;gap:1.8rem;
}
.dns-sim{
  position:relative;
  width:100%;max-width:920px;
  background:rgba(6,8,14,.92);
  border:1px solid rgba(139,92,246,.14);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 0 60px rgba(139,92,246,.04),0 20px 60px rgba(0,0,0,.5);
}
.dns-sim::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(139,92,246,.015) 1px,transparent 1px),
    linear-gradient(90deg,rgba(139,92,246,.015) 1px,transparent 1px);
  background-size:35px 35px;
  border-radius:16px;z-index:0;
}

/* Scan Line */
.scan-line{
  position:absolute;top:0;left:0;right:0;
  height:2px;z-index:10;
  background:linear-gradient(90deg,transparent,rgba(139,92,246,.55),rgba(167,139,250,.55),transparent);
  animation:scanDown 5s linear infinite;
}
@keyframes scanDown{
  0%{top:0;opacity:0}
  5%{opacity:1}
  90%{opacity:1}
  100%{top:100%;opacity:0}
}

/* Terminal Bar */
.terminal-bar{
  position:relative;z-index:3;
  display:flex;align-items:center;gap:.5rem;
  padding:.65rem 1.1rem;
  background:rgba(15,18,28,.95);
  border-bottom:1px solid rgba(139,92,246,.1);
}
.terminal-dot{
  width:11px;height:11px;border-radius:50%;flex-shrink:0;
}
.terminal-dot.red{background:#ff5f57;animation:dotGlow 2s ease-in-out infinite}
.terminal-dot.yellow{background:#febc2e;animation:dotGlow 2s ease-in-out infinite .3s}
.terminal-dot.green{background:#28c840;animation:dotGlow 2s ease-in-out infinite .6s}
@keyframes dotGlow{
  0%,100%{box-shadow:0 0 4px rgba(255,255,255,.1)}
  50%{box-shadow:0 0 10px rgba(255,255,255,.25)}
}
.terminal-title{
  font-family:'JetBrains Mono',monospace;
  font-size:.62rem;color:#5a6a7a;
  letter-spacing:1px;margin-left:.5rem;flex:1;
}
.terminal-status{
  font-family:'JetBrains Mono',monospace;
  font-size:.55rem;color:#8b5cf6;
  letter-spacing:1px;
  animation:statusFlicker 3s ease-in-out infinite;
}
@keyframes statusFlicker{
  0%,100%{opacity:.5}
  50%{opacity:1}
}

/* DNS Flow Area */
.dns-flow{
  position:relative;z-index:2;
  padding:2rem 1.5rem;
  min-height:520px;
}

/* DNS Nodes Row */
.dns-nodes{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  margin-bottom:2rem;
  position:relative;
}
.dns-node{
  flex:1;
  text-align:center;
  position:relative;
  z-index:3;
}
.dns-node-icon{
  width:64px;height:64px;
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.6rem;
  margin:0 auto .6rem;
  position:relative;
  border:2px solid;
  transition:box-shadow .4s;
}
.dns-node.client .dns-node-icon{
  background:rgba(96,165,250,.08);
  border-color:rgba(96,165,250,.3);
  animation:clientPulse 3s ease-in-out infinite;
}
@keyframes clientPulse{
  0%,100%{box-shadow:0 0 10px rgba(96,165,250,.15)}
  50%{box-shadow:0 0 25px rgba(96,165,250,.35)}
}
.dns-node.adversary .dns-node-icon{
  background:rgba(139,92,246,.08);
  border-color:rgba(139,92,246,.3);
  animation:adversaryPulse 2.5s ease-in-out infinite;
}
@keyframes adversaryPulse{
  0%,100%{box-shadow:0 0 10px rgba(139,92,246,.15)}
  50%{box-shadow:0 0 30px rgba(139,92,246,.4)}
}
.dns-node.response .dns-node-icon{
  background:rgba(251,191,36,.08);
  border-color:rgba(251,191,36,.3);
  animation:responsePulse 3.5s ease-in-out infinite;
}
@keyframes responsePulse{
  0%,100%{box-shadow:0 0 10px rgba(251,191,36,.15)}
  50%{box-shadow:0 0 25px rgba(251,191,36,.35)}
}
.dns-node.exfil .dns-node-icon{
  background:rgba(239,68,68,.08);
  border-color:rgba(239,68,68,.3);
  animation:exfilPulse 2s ease-in-out infinite;
}
@keyframes exfilPulse{
  0%,100%{box-shadow:0 0 10px rgba(239,68,68,.15)}
  50%{box-shadow:0 0 28px rgba(239,68,68,.4)}
}
.dns-node-label{
  font-family:'JetBrains Mono',monospace;
  font-size:.62rem;
  letter-spacing:1px;
  text-transform:uppercase;
  margin-bottom:.2rem;
}
.dns-node.client .dns-node-label{color:#60a5fa}
.dns-node.adversary .dns-node-label{color:#8b5cf6}
.dns-node.response .dns-node-label{color:#fbbf24}
.dns-node.exfil .dns-node-label{color:#ef4444}
.dns-node-desc{
  font-size:.7rem;color:#5a6a7a;
  line-height:1.5;
  max-width:140px;
  margin:0 auto;
}

/* DNS Connection Lines */
.dns-connections{
  position:absolute;
  top:32px;left:0;right:0;
  height:2px;
  z-index:1;
}
.dns-conn-line{
  position:absolute;
  top:0;height:2px;
  border-radius:1px;
  overflow:hidden;
}
.dns-conn-line.line1{
  left:15%;width:18%;
  background:rgba(96,165,250,.15);
  animation:lineFlow1 4s ease-in-out infinite;
}
@keyframes lineFlow1{
  0%,100%{opacity:.2;box-shadow:none}
  30%{opacity:1;box-shadow:0 0 12px rgba(96,165,250,.4)}
  60%{opacity:.2}
}
.dns-conn-line.line2{
  left:37%;width:26%;
  background:rgba(139,92,246,.15);
  animation:lineFlow2 4s ease-in-out infinite .8s;
}
@keyframes lineFlow2{
  0%,100%{opacity:.2;box-shadow:none}
  30%{opacity:1;box-shadow:0 0 12px rgba(139,92,246,.4)}
  60%{opacity:.2}
}
.dns-conn-line.line3{
  left:67%;width:18%;
  background:rgba(251,191,36,.15);
  animation:lineFlow3 4s ease-in-out infinite 1.6s;
}
@keyframes lineFlow3{
  0%,100%{opacity:.2;box-shadow:none}
  30%{opacity:1;box-shadow:0 0 12px rgba(251,191,36,.4)}
  60%{opacity:.2}
}

/* DNS Packet Dots */
.dns-packet{
  position:absolute;
  width:8px;height:8px;
  border-radius:50%;
  z-index:4;
}
.dns-packet.query-dot{
  background:#60a5fa;
  box-shadow:0 0 8px rgba(96,165,250,.6);
  top:28px;left:15%;
  animation:queryFly 4s ease-in-out infinite;
}
@keyframes queryFly{
  0%{left:15%;opacity:0}
  10%{opacity:1}
  40%{left:37%;opacity:1}
  50%{opacity:0}
  100%{opacity:0}
}
.dns-packet.c2-dot{
  background:#8b5cf6;
  box-shadow:0 0 8px rgba(139,92,246,.6);
  top:28px;left:37%;
  animation:c2Fly 4s ease-in-out infinite 1s;
}
@keyframes c2Fly{
  0%{left:37%;opacity:0}
  10%{opacity:1}
  40%{left:67%;opacity:1}
  50%{opacity:0}
  100%{opacity:0}
}
.dns-packet.resp-dot{
  background:#fbbf24;
  box-shadow:0 0 8px rgba(251,191,36,.6);
  top:40px;left:67%;
  animation:respFly 4s ease-in-out infinite 2s;
}
@keyframes respFly{
  0%{left:67%;opacity:0}
  10%{opacity:1}
  40%{left:85%;opacity:1}
  50%{opacity:0}
  100%{opacity:0}
}
.dns-packet.exfil-dot{
  background:#ef4444;
  box-shadow:0 0 8px rgba(239,68,68,.6);
  top:40px;left:15%;
  animation:exfilFly 4s ease-in-out infinite 2.8s;
}
@keyframes exfilFly{
  0%{left:15%;opacity:0}
  10%{opacity:1}
  40%{left:85%;opacity:1}
  50%{opacity:0}
  100%{opacity:0}
}

/* DNS Query Log Panel */
.dns-log-panel{
  background:rgba(10,12,20,.95);
  border:1px solid rgba(139,92,246,.12);
  border-radius:10px;
  overflow:hidden;
  margin-top:1rem;
}
.dns-log-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:.5rem .8rem;
  background:rgba(139,92,246,.04);
  border-bottom:1px solid rgba(139,92,246,.08);
}
.dns-log-header span{
  font-family:'JetBrains Mono',monospace;
  font-size:.55rem;color:#5a6a7a;
  letter-spacing:1px;text-transform:uppercase;
}
.dns-log-body{
  padding:.6rem .8rem;
  min-height:180px;
  font-family:'JetBrains Mono',monospace;
  font-size:.58rem;
  line-height:1.8;
}
.log-entry{
  opacity:0;
  animation:logReveal 10s ease-out infinite;
}
.log-entry:nth-child(1){animation-delay:0s}
.log-entry:nth-child(2){animation-delay:1.2s}
.log-entry:nth-child(3){animation-delay:2.4s}
.log-entry:nth-child(4){animation-delay:3.6s}
.log-entry:nth-child(5){animation-delay:4.8s}
.log-entry:nth-child(6){animation-delay:6s}
.log-entry:nth-child(7){animation-delay:7.2s}
.log-entry:nth-child(8){animation-delay:8.4s}
@keyframes logReveal{
  0%,2%{opacity:0;transform:translateY(4px)}
  4%{opacity:1;transform:translateY(0)}
  85%{opacity:1}
  95%{opacity:0}
  100%{opacity:0}
}
.log-time{color:#5a6a7a}
.log-type{color:#8b5cf6}
.log-query{color:#60a5fa}
.log-answer{color:#a78bfa}
.log-warn{color:#ef4444}
.log-cmd{color:#fbbf24}

/* Tunnel Data Bars */
.tunnel-bars{
  display:flex;gap:3px;
  align-items:flex-end;
  height:40px;
  margin-top:.8rem;
  padding:0 .8rem .6rem;
}
.tunnel-bar{
  flex:1;
  border-radius:2px 2px 0 0;
  animation:tunnelBarAnim 3s ease-in-out infinite;
}
.tunnel-bar:nth-child(odd){background:rgba(139,92,246,.25)}
.tunnel-bar:nth-child(even){background:rgba(167,139,250,.15)}
.tunnel-bar:nth-child(1){animation-delay:0s;height:8px}
.tunnel-bar:nth-child(2){animation-delay:.15s;height:16px}
.tunnel-bar:nth-child(3){animation-delay:.3s;height:10px}
.tunnel-bar:nth-child(4){animation-delay:.45s;height:24px}
.tunnel-bar:nth-child(5){animation-delay:.6s;height:14px}
.tunnel-bar:nth-child(6){animation-delay:.75s;height:28px}
.tunnel-bar:nth-child(7){animation-delay:.9s;height:18px}
.tunnel-bar:nth-child(8){animation-delay:1.05s;height:32px}
.tunnel-bar:nth-child(9){animation-delay:1.2s;height:20px}
.tunnel-bar:nth-child(10){animation-delay:1.35s;height:12px}
.tunnel-bar:nth-child(11){animation-delay:1.5s;height:26px}
.tunnel-bar:nth-child(12){animation-delay:1.65s;height:36px}
.tunnel-bar:nth-child(13){animation-delay:1.8s;height:22px}
.tunnel-bar:nth-child(14){animation-delay:1.95s;height:14px}
.tunnel-bar:nth-child(15){animation-delay:2.1s;height:30px}
.tunnel-bar:nth-child(16){animation-delay:2.25s;height:18px}
.tunnel-bar:nth-child(17){animation-delay:2.4s;height:8px}
.tunnel-bar:nth-child(18){animation-delay:2.55s;height:20px}
.tunnel-bar:nth-child(19){animation-delay:2.7s;height:34px}
.tunnel-bar:nth-child(20){animation-delay:2.85s;height:16px}
@keyframes tunnelBarAnim{
  0%,100%{transform:scaleY(1);opacity:.5}
  50%{transform:scaleY(1.4);opacity:1}
}

/* Sim Badge */
.sim-badge{
  position:absolute;top:.6rem;right:.6rem;
  font-family:'JetBrains Mono',monospace;
  font-size:.48rem;letter-spacing:1.5px;
  padding:.12rem .45rem;border-radius:3px;
  z-index:6;
  color:#8b5cf6;
  border:1px solid rgba(139,92,246,.3);
  background:rgba(139,92,246,.06);
  animation:simBadgeGlow 2s ease-in-out infinite;
}
@keyframes simBadgeGlow{
  0%,100%{opacity:.6;box-shadow:none}
  50%{opacity:1;box-shadow:0 0 10px rgba(139,92,246,.2)}
}

/* Data Particles in Sim */
.data-particles{
  position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden;
}
.data-particle{
  position:absolute;width:1px;height:1px;
  background:rgba(139,92,246,.35);border-radius:50%;
  animation:dataFloat linear infinite;
}
.data-particle:nth-child(1){left:8%;animation-duration:9s;animation-delay:0s}
.data-particle:nth-child(2){left:22%;animation-duration:13s;animation-delay:2s}
.data-particle:nth-child(3){left:38%;animation-duration:11s;animation-delay:4s}
.data-particle:nth-child(4){left:52%;animation-duration:15s;animation-delay:1s}
.data-particle:nth-child(5){left:68%;animation-duration:10s;animation-delay:3s}
.data-particle:nth-child(6){left:82%;animation-duration:14s;animation-delay:5s}
.data-particle:nth-child(7){left:93%;animation-duration:12s;animation-delay:0.5s}
.data-particle:nth-child(8){left:45%;animation-duration:16s;animation-delay:6s}
@keyframes dataFloat{
  0%{transform:translateY(100%) translateX(0);opacity:0}
  10%{opacity:.6}
  50%{opacity:.3}
  90%{opacity:.5}
  100%{transform:translateY(-100%) translateX(15px);opacity:0}
}

/* ============================================================
   GLASS CARD
   ============================================================ */
.glass-card{
  background:rgba(14,17,26,.6);
  backdrop-filter:blur(10px);
  border:1px solid rgba(139,92,246,.08);
  border-radius:12px;
  padding:2rem;
  margin-bottom:1.5rem;
  transition:border-color .3s,box-shadow .3s;
}
.glass-card:hover{
  border-color:rgba(139,92,246,.22);
  box-shadow:0 0 35px rgba(139,92,246,.04);
}

/* ============================================================
   GLOW CARD
   ============================================================ */
.glow-card{
  position:relative;
  background:rgba(10,10,15,.88);
  border-radius:14px;
  padding:2rem;
  margin-bottom:1.5rem;
  overflow:hidden;
}
.glow-card::before{
  content:'';position:absolute;inset:-1px;
  border-radius:14px;
  background:linear-gradient(135deg,rgba(139,92,246,.28),transparent 40%,transparent 60%,rgba(167,139,250,.28));
  z-index:-1;
  animation:glowBorder 4s ease-in-out infinite alternate;
}
@keyframes glowBorder{
  0%{opacity:.4}
  100%{opacity:1}
}
.glow-card::after{
  content:'';position:absolute;inset:1px;
  background:rgba(10,10,15,.96);
  border-radius:13px;z-index:-1;
}
.glow-card h3{color:#8b5cf6;margin-bottom:.8rem;font-size:1.1rem}
.glow-card p{margin-bottom:.8rem}

/* ============================================================
   STAT BOX
   ============================================================ */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1.1rem;margin:2rem 0}
.stat-box{
  text-align:center;padding:1.4rem;
  background:rgba(139,92,246,.025);
  border:1px solid rgba(139,92,246,.1);
  border-radius:10px;
  transition:transform .3s,box-shadow .3s;
}
.stat-box:hover{transform:translateY(-4px);box-shadow:0 8px 30px rgba(139,92,246,.06)}
.stat-number{
  font-family:'JetBrains Mono',monospace;
  font-size:1.9rem;color:#8b5cf6;
  text-shadow:0 0 18px rgba(139,92,246,.3);
}
.stat-number.green{color:#28c840;text-shadow:0 0 18px rgba(40,200,64,.3)}
.stat-number.red{color:#ff5f57;text-shadow:0 0 18px rgba(255,95,87,.3)}
.stat-number.amber{color:#fbbf24;text-shadow:0 0 18px rgba(251,191,36,.3)}
.stat-label{font-size:.78rem;color:#5a6a7a;margin-top:.3rem}

/* ============================================================
   DEFINITION BOX
   ============================================================ */
.def-box{
  background:linear-gradient(135deg,rgba(139,92,246,.04),rgba(167,139,250,.02));
  border-left:4px solid #8b5cf6;
  padding:1.4rem 1.8rem;
  border-radius:0 10px 10px 0;
  margin:1.5rem 0;
}
.def-box .def-label{
  font-family:'JetBrains Mono',monospace;
  font-size:.72rem;color:#8b5cf6;
  letter-spacing:1px;text-transform:uppercase;
  margin-bottom:.4rem;
}
.def-box p{font-size:.93rem;line-height:1.8}

/* ============================================================
   ANALOGY BOX
   ============================================================ */
.analogy-box{
  background:linear-gradient(135deg,rgba(167,139,250,.04),rgba(139,92,246,.02));
  border-left:4px solid #a78bfa;
  padding:1.4rem 1.8rem;
  border-radius:0 10px 10px 0;
  margin:1.5rem 0;
}
.analogy-box .def-label{color:#a78bfa}

/* ============================================================
   WARNING BANNER
   ============================================================ */
.warning-banner{
  background:linear-gradient(135deg,rgba(255,95,87,.06),rgba(139,92,246,.03));
  border:1px solid rgba(255,95,87,.18);
  border-radius:10px;
  padding:1.2rem 1.5rem;
  margin-bottom:1.5rem;
  display:flex;align-items:flex-start;gap:.8rem;
}
.warning-icon{
  font-size:1.3rem;flex-shrink:0;
  animation:warnPulse 2s ease-in-out infinite;
}
@keyframes warnPulse{
  0%,100%{opacity:.7;transform:scale(1)}
  50%{opacity:1;transform:scale(1.12)}
}
.warning-banner p{font-size:.9rem;color:#8a9ab0;line-height:1.7}

/* ============================================================
   SCENARIO TIMELINE
   ============================================================ */
.scenario-timeline{position:relative;padding-left:2rem}
.scenario-timeline::before{
  content:'';position:absolute;left:8px;top:0;bottom:0;
  width:2px;
  background:linear-gradient(180deg,#8b5cf6,#a78bfa,rgba(167,139,250,.2));
}
.timeline-item{position:relative;margin-bottom:2rem;padding-left:1.5rem}
.timeline-item::before{
  content:'';position:absolute;left:-2rem;top:4px;
  width:16px;height:16px;border-radius:50%;
  background:#0a0e17;border:2px solid #8b5cf6;
  box-shadow:0 0 10px rgba(139,92,246,.3);
}
.timeline-item.bad::before{border-color:#ff5f57;box-shadow:0 0 10px rgba(255,95,87,.3)}
.timeline-item.good::before{border-color:#28c840;box-shadow:0 0 10px rgba(40,200,64,.3)}
.timeline-item h4{color:#8b5cf6;margin-bottom:.35rem;font-size:.98rem}
.timeline-item.bad h4{color:#ff7777}
.timeline-item.good h4{color:#44dd88}
.timeline-item p{font-size:.9rem;color:#8a9ab0}

/* ============================================================
   STEP CARD
   ============================================================ */
.steps-grid{display:flex;flex-direction:column;gap:1.1rem}
.step-card{
  display:flex;gap:1.1rem;align-items:flex-start;
  background:rgba(14,17,26,.5);
  border:1px solid rgba(139,92,246,.06);
  border-radius:10px;
  padding:1.2rem 1.4rem;
  transition:all .3s;
}
.step-card:hover{
  border-color:rgba(139,92,246,.18);
  background:rgba(14,17,26,.7);
  transform:translateX(5px);
}
.step-num{
  flex-shrink:0;
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(139,92,246,.12),rgba(167,139,250,.08));
  border:1px solid rgba(139,92,246,.25);
  border-radius:10px;
  font-family:'JetBrains Mono',monospace;
  font-size:1.05rem;color:#8b5cf6;
}
.step-content h4{color:#f0f0f5;margin-bottom:.35rem;font-size:.98rem}
.step-content p{font-size:.87rem;color:#8a9ab0;margin-bottom:.35rem}
.step-content ul{list-style:none;padding:0}
.step-content ul li{
  font-size:.82rem;color:#6a8a9a;padding:.18rem 0 .18rem 1.1rem;
  position:relative;
}
.step-content ul li::before{
  content:'\203A';position:absolute;left:0;color:#8b5cf6;font-weight:bold;
}

/* ============================================================
   PROTECTION TAGS
   ============================================================ */
.protection-tag{
  display:inline-block;
  font-family:'JetBrains Mono',monospace;
  font-size:.6rem;
  padding:.1rem .4rem;
  border-radius:3px;
  margin:.15rem .1rem;
  letter-spacing:.5px;
}
.protection-tag.prevent{
  background:rgba(40,200,64,.08);
  border:1px solid rgba(40,200,64,.2);
  color:#28c840;
}
.protection-tag.detect{
  background:rgba(139,92,246,.08);
  border:1px solid rgba(139,92,246,.2);
  color:#8b5cf6;
}
.protection-tag.respond{
  background:rgba(96,165,250,.08);
  border:1px solid rgba(96,165,250,.2);
  color:#60a5fa;
}
.protection-tag.monitor{
  background:rgba(251,191,36,.08);
  border:1px solid rgba(251,191,36,.2);
  color:#fbbf24;
}

/* ============================================================
   MISTAKES &amp; BEST PRACTICES
   ============================================================ */
.mb-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media(max-width:700px){.mb-grid{grid-template-columns:1fr}}
.mb-card{padding:1.5rem}
.mb-card.mistake{border-left:3px solid #ff5f57}
.mb-card.best{border-left:3px solid #28c840}
.mb-card h3{font-size:.98rem;margin-bottom:1rem}
.mb-card.mistake h3{color:#ff7777}
.mb-card.best h3{color:#44dd88}
.mb-card ul{list-style:none;padding:0}
.mb-card ul li{
  padding:.45rem 0 .45rem 1.4rem;
  font-size:.87rem;color:#8a9ab0;
  position:relative;
  border-bottom:1px solid rgba(255,255,255,.025);
}
.mb-card.mistake ul li::before{content:'\2715';position:absolute;left:0;color:#ff5f57;font-weight:bold;font-size:.85rem}
.mb-card.best ul li::before{content:'\2713';position:absolute;left:0;color:#28c840;font-weight:bold;font-size:.85rem}

/* ============================================================
   RED TEAM / BLUE TEAM
   ============================================================ */
.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media(max-width:700px){.team-grid{grid-template-columns:1fr}}
.team-card{position:relative;overflow:hidden}
.team-card .team-label{
  position:absolute;top:1rem;right:1rem;
  font-family:'JetBrains Mono',monospace;
  font-size:.62rem;letter-spacing:2px;text-transform:uppercase;
  padding:.18rem .55rem;border-radius:4px;
}
.team-card.red .team-label{color:#ff5f57;border:1px solid rgba(255,95,87,.3);background:rgba(255,95,87,.06)}
.team-card.blue .team-label{color:#60a5fa;border:1px solid rgba(96,165,250,.3);background:rgba(96,165,250,.06)}
.team-card h3{margin-top:.5rem;margin-bottom:.8rem;font-size:1.05rem}
.team-card.red h3{color:#ff8888}
.team-card.blue h3{color:#88bbff}
.team-card ul{list-style:none;padding:0}
.team-card ul li{
  padding:.4rem 0 .4rem 1.3rem;
  font-size:.87rem;color:#8a9ab0;
  position:relative;
  border-bottom:1px solid rgba(255,255,255,.025);
}
.team-card.red ul li::before{content:'\25B6';position:absolute;left:0;color:#ff5f57;font-size:.6rem}
.team-card.blue ul li::before{content:'\25B6';position:absolute;left:0;color:#60a5fa;font-size:.6rem}

/* ============================================================
   HUNTER CARD
   ============================================================ */
.hunter-card{
  background:linear-gradient(135deg,rgba(139,92,246,.04),rgba(255,95,87,.02));
  border:1px solid rgba(139,92,246,.12);
  border-radius:12px;
  padding:2rem;
}
.hunter-card h3{color:#8b5cf6;margin-bottom:.8rem}

/* ============================================================
   DATA TABLE
   ============================================================ */
.data-table{
  width:100%;border-collapse:collapse;margin:1rem 0;
  font-family:'JetBrains Mono',monospace;
  font-size:.78rem;
}
.data-table th{
  text-align:left;
  padding:.55rem .75rem;
  background:rgba(139,92,246,.06);
  border:1px solid rgba(139,92,246,.12);
  color:#8b5cf6;
  font-weight:500;
  letter-spacing:.5px;
  font-size:.68rem;
}
.data-table td{
  padding:.45rem .75rem;
  border:1px solid rgba(255,255,255,.04);
  color:#8a9ab0;
}
.data-table tr:nth-child(even){background:rgba(139,92,246,.015)}

/* ============================================================
   CTA SECTION
   ============================================================ */
.cta-section{text-align:center;padding:4rem 0}
.cta-box{
  display:inline-block;
  background:linear-gradient(135deg,rgba(139,92,246,.06),rgba(167,139,250,.03));
  border:1px solid rgba(139,92,246,.18);
  border-radius:16px;
  padding:3rem 2.5rem;
  max-width:700px;
}
.cta-box h2{margin-bottom:1rem;font-size:1.5rem}
.cta-box p{margin-bottom:1.5rem;color:#8a9ab0}
.cta-links{
  display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;
}
.cta-link{
  display:inline-block;
  font-family:'JetBrains Mono',monospace;
  font-size:.72rem;
  padding:.5rem 1.2rem;
  border-radius:8px;
  border:1px solid rgba(139,92,246,.25);
  background:rgba(139,92,246,.06);
  color:#a78bfa;
  transition:all .3s;
}
.cta-link:hover{
  border-color:rgba(139,92,246,.5);
  background:rgba(139,92,246,.12);
  box-shadow:0 0 20px rgba(139,92,246,.15);
  color:#8b5cf6;
  text-shadow:0 0 10px rgba(139,92,246,.3);
}

/* ============================================================
   KEY TERM CARDS
   ============================================================ */
.term-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1rem;
  margin:1.5rem 0;
}
.term-card{
  background:rgba(14,17,26,.5);
  border:1px solid rgba(139,92,246,.08);
  border-radius:10px;
  padding:1.2rem 1.4rem;
  transition:all .3s;
}
.term-card:hover{
  border-color:rgba(139,92,246,.2);
  transform:translateY(-2px);
}
.term-card h4{
  font-size:.88rem;color:#8b5cf6;
  margin-bottom:.4rem;
  font-family:'JetBrains Mono',monospace;
}
.term-card p{
  font-size:.82rem;color:#6a8a9a;
  line-height:1.6;
}

/* ============================================================
   ACCENT LINE
   ============================================================ */
.accent-line{
  width:100%;height:1px;margin:2rem 0;
  background:linear-gradient(90deg,transparent,rgba(139,92,246,.25),rgba(167,139,250,.25),transparent);
  animation:accentLineShimmer 3s ease-in-out infinite;
}
@keyframes accentLineShimmer{
  0%,100%{opacity:.3}
  50%{opacity:.8}
}

/* ============================================================
   THREAT ICON
   ============================================================ */
.threat-icon{
  display:inline-block;
  animation:threatIconPulse 2s ease-in-out infinite;
}
@keyframes threatIconPulse{
  0%,100%{transform:scale(1);filter:brightness(1)}
  50%{transform:scale(1.12);filter:brightness(1.3)}
}

/* ============================================================
   DATA STREAM MARQUEE
   ============================================================ */
.data-stream{
  position:relative;height:32px;overflow:hidden;
  font-family:'JetBrains Mono',monospace;
  font-size:.52rem;color:rgba(139,92,246,.12);
  line-height:32px;white-space:nowrap;
  margin:1rem 0;
}
.data-stream::before{
  content:'dns-query dns-response txt-record a-record cname mx ns soa ptr srv aaaa tunnel encode decode beacon c2 exfiltrate resolve forward conditional adversarial authoritative recursive resolver cache poison hijack spoof';
  position:absolute;white-space:nowrap;
  animation:streamScroll 28s linear infinite;
}
@keyframes streamScroll{
  0%{transform:translateX(100%)}
  100%{transform:translateX(-100%)}
}

/* ============================================================
   PULSE RING
   ============================================================ */
.pulse-ring{
  position:absolute;border-radius:50%;
  border:1px solid rgba(139,92,246,.25);
  animation:pulseRingExpand 3s ease-out infinite;
}
@keyframes pulseRingExpand{
  0%{transform:translate(-50%,-50%) scale(1);opacity:.5}
  100%{transform:translate(-50%,-50%) scale(3);opacity:0}
}

/* ============================================================
   RADAR SWEEP (Small)
   ============================================================ */
.radar-mini{
  width:50px;height:50px;border-radius:50%;
  border:1px solid rgba(139,92,246,.15);
  position:relative;
}
.radar-mini::before{
  content:'';position:absolute;
  top:50%;left:50%;
  width:50%;height:1.5px;
  background:linear-gradient(90deg,rgba(139,92,246,.5),transparent);
  transform-origin:left center;
  animation:radarSpin 3s linear infinite;
}
.radar-mini::after{
  content:'';position:absolute;
  top:50%;left:50%;
  width:5px;height:5px;
  background:#8b5cf6;border-radius:50%;
  transform:translate(-50%,-50%);
  box-shadow:0 0 6px rgba(139,92,246,.4);
}
@keyframes radarSpin{
  0%{transform:rotate(0deg)}
  100%{transform:rotate(360deg)}
}

/* ============================================================
   GLITCH TEXT
   ============================================================ */
.glitch-text{
  position:relative;
  animation:glitchEffect 8s step-end infinite;
}
@keyframes glitchEffect{
  0%,93%,95%,97%,100%{text-shadow:none}
  94%{text-shadow:-2px 0 #ff5f57,2px 0 #a78bfa}
  96%{text-shadow:2px 0 #ff5f57,-2px 0 #a78bfa}
  98%{text-shadow:-1px 1px #ff5f57,1px -1px #a78bfa}
}

/* ============================================================
   REFERENCE LINKS
   ============================================================ */
.ref-links{
  display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem;
}
.ref-links a{
  font-size:.7rem;
  padding:.22rem .55rem;
  border:1px solid rgba(139,92,246,.1);
  border-radius:4px;
  color:#5a8a9a;
  transition:all .3s;
}
.ref-links a:hover{
  border-color:rgba(139,92,246,.35);
  color:#8b5cf6;
}

/* ============================================================
   TOOL TAG
   ============================================================ */
.tool-tag{
  display:inline-block;
  font-family:'JetBrains Mono',monospace;
  font-size:.7rem;
  padding:.12rem .45rem;
  background:rgba(139,92,246,.05);
  border:1px solid rgba(139,92,246,.12);
  border-radius:4px;
  color:#8b5cf6;
  margin:.12rem;
}

/* ============================================================
   HUNTING QUERY
   ============================================================ */
.hunt-query{
  font-family:'JetBrains Mono',monospace;
  font-size:.72rem;
  background:rgba(10,12,20,.9);
  border:1px solid rgba(139,92,246,.1);
  border-radius:6px;
  padding:.5rem .8rem;
  margin:.5rem 0;
  color:#a78bfa;
  overflow-x:auto;
  white-space:nowrap;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:768px){
  .dns-nodes{flex-direction:column;align-items:center;gap:1.5rem}
  .dns-connections{display:none}
  .dns-packet{display:none}
  .header h1{font-size:2rem}
  .cta-box{padding:2rem 1.5rem}
  .cta-links{flex-direction:column}
  .cta-link{text-align:center}
}
@media(max-width:480px){
  .header{padding:3rem 1rem 1.5rem}
  .section{padding:3rem 0}
  .glass-card,.glow-card{padding:1.2rem}
  .stat-grid{grid-template-columns:1fr}
  .term-grid{grid-template-columns:1fr}
}/* End custom CSS */