/* ============================================================
   PEERYX NETWORK — v115  (patch-3 / NOC dashboard)
   Direction: Network Infrastructure Professional
   No AI-glow. Teal-on-slate. Precise. Trusted.
   ============================================================ */

/* ══ 1. TOKENS ══════════════════════════════════════════════ */
:root {
  --p15-bg:        #070F1A;
  --p15-bg2:       #0C1828;
  --p15-bg3:       #112135;
  --p15-card:      #0D1E30;
  --p15-card2:     #112540;
  --p15-border:    rgba(255,255,255,0.095);
  --p15-border2:   rgba(255,255,255,0.160);
  --p15-text:      #EDF5FF;
  --p15-muted:     #8AAAC8;
  --p15-faint:     #4C6480;
  --p15-teal:      #00E0A8;
  --p15-teal-dk:   #00B88E;
  --p15-blue:      #3578FF;
  --p15-amber:     #F5A200;
  --p15-red:       #FF3D50;
  --p15-green:     #22D47A;
  --p15-r:         10px;
  --p15-r-lg:      16px;
  --p15-r-sm:      6px;

  /* override all v99 / legacy tokens */
  --v99-bg:#070F1A; --v99-bg-2:#0C1828; --v99-bg-3:#112135;
  --v99-surface:rgba(13,30,48,0.85); --v99-surface-2:#0D1E30;
  --v99-line:rgba(255,255,255,0.08); --v99-line-2:rgba(255,255,255,0.14);
  --v99-text:#EDF5FF; --v99-muted:#8AAAC8; --v99-faint:#4C6480;
  --v99-cyan:#00E0A8; --v99-blue:#3578FF; --v99-iris:#5B82FF;
  --v99-green:#22D47A; --v99-amber:#F5A200; --v99-red:#FF3D50;
  --v99-lime:#7CFF96;
  --v99-grad:linear-gradient(135deg,#00E0A8 0%,#3578FF 100%);
  --v99-grad-soft:linear-gradient(135deg,rgba(0,224,168,.10),rgba(53,120,255,.10));
  --v99-glow:rgba(0,224,168,0.20);
  --v99-radius:10px; --v99-radius-sm:6px;
  --bg:#070F1A; --bg-2:#0C1828; --bg-3:#112135;
  --blue:#3578FF; --blue-2:#2562E0; --cyan:#00E0A8; --cyan-2:#80F8E0; --orange:#F5A200;
  --line:rgba(255,255,255,0.08); --line-strong:rgba(255,255,255,0.14);
  --px26-bg:#070F1A; --px26-bg-2:#0C1828; --px26-cyan:#00E0A8;
  --px26-blue:#3578FF; --px26-blue-2:#2562E0;
  --px26-border:rgba(255,255,255,0.08); --px26-border-strong:rgba(0,224,168,0.38);
  --px96-bg:rgba(7,15,26,.95); --px96-cyan:#00E0A8; --px96-blue:#3578FF;
  --px97-header-bg:rgba(6,14,26,.96); --px97-header-border:rgba(255,255,255,0.09);
  --px98-bg:#070F1A; --px98-cyan:#00E0A8; --px98-blue:#3578FF;
  --soft-section-bg:linear-gradient(180deg,rgba(12,24,40,0.80),rgba(7,15,26,0.60));
  --soft-section-bg-strong:linear-gradient(180deg,rgba(13,28,46,0.92),rgba(8,18,32,0.92));
}

/* ══ 2. BASE — kill all background glows ════════════════════ */
html body { background-color: var(--p15-bg) !important; }
html body .site-shell,
html body .pxv93-home {
  background: var(--p15-bg) !important;
  animation: none !important;
}
html body .site-shell::before,
html body .site-shell::after { display: none !important; }

/* ══ 3. HEADER ══════════════════════════════════════════════ */
html body .site-header {
  background: rgba(6,13,24,0.88) !important;
  backdrop-filter: blur(24px) saturate(1.3) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.3) !important;
  border-bottom: 1px solid rgba(255,255,255,0.09) !important;
  box-shadow: none !important;
}
html body .site-header.scrolled,
html body .site-header[data-scrolled] {
  background: rgba(6,13,24,0.97) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.05),0 10px 36px rgba(0,0,0,.32) !important;
}
html body .site-header .brand-mark img { filter: none !important; }
html body .site-header .brand-name { font-weight:800 !important; letter-spacing:.07em !important; color:#fff !important; }
html body .site-header .brand-sub { color:var(--p15-teal) !important; font-size:9px !important; letter-spacing:.26em !important; opacity:.82 !important; }

/* Nav pill → flat */
html body .site-header .desktop-nav,
html body.page-home .site-header .desktop-nav,
html body[class^="page-"] .site-header .desktop-nav {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
html body .site-header .desktop-nav a,
html body.page-home .site-header .desktop-nav a,
html body[class^="page-"] .site-header .desktop-nav a,
html body .site-header .desktop-nav .nav-link {
  color: #B6CEEC !important;
  -webkit-text-fill-color: #B6CEEC !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: var(--p15-r-sm) !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  letter-spacing: -.01em !important;
  padding: 7px 12px !important;
  min-height: 36px !important;
}
html body .site-header .desktop-nav a::before,
html body .site-header .desktop-nav a::after { display:none !important; content:none !important; }
html body .site-header .desktop-nav a:hover {
  color: #fff !important; -webkit-text-fill-color: #fff !important;
  background: rgba(255,255,255,0.07) !important; box-shadow: none !important;
}
html body .site-header .desktop-nav a.active,
html body .site-header .desktop-nav a[aria-current="page"] {
  color: var(--p15-teal) !important; -webkit-text-fill-color: var(--p15-teal) !important;
  background: rgba(0,224,168,0.09) !important; box-shadow: none !important;
}

/* Account */
html body .site-header .account-link-login { color:#B6CEEC !important; -webkit-text-fill-color:#B6CEEC !important; font-weight:600 !important; font-size:13.5px !important; }
html body .site-header .account-link-login:hover { color:#fff !important; -webkit-text-fill-color:#fff !important; }
html body .site-header .account-link-register {
  background: var(--p15-teal) !important; color:#040F1A !important;
  -webkit-text-fill-color:#040F1A !important; border:none !important;
  font-weight:700 !important; font-size:13px !important;
  border-radius:var(--p15-r-sm) !important; box-shadow:none !important;
  padding:8px 18px !important; letter-spacing:.01em !important;
  transition:background .18s,transform .15s !important;
}
html body .site-header .account-link-register:hover {
  background:#1AEDB8 !important; transform:translateY(-1px) !important;
  box-shadow:0 6px 20px rgba(0,224,168,.30) !important;
}
html body .site-header .locale-trigger {
  color:#B6CEEC !important; border:1px solid rgba(255,255,255,.14) !important;
  background:rgba(255,255,255,.04) !important; border-radius:var(--p15-r-sm) !important; font-size:12px !important;
}
html body .site-header .locale-trigger:hover { border-color:rgba(255,255,255,.28) !important; color:#fff !important; }
html body .locale-menu { background:#0D1B2C !important; border:1px solid rgba(255,255,255,.13) !important; box-shadow:0 16px 48px rgba(0,0,0,.60) !important; border-radius:var(--p15-r) !important; }
html body .locale-menu a { color:#B6CEEC !important; }
html body .locale-menu a:hover,
html body .locale-menu a.active { color:var(--p15-teal) !important; }
html body .mobile-toggle span { background:#fff !important; }
html body .mobile-nav { background:rgba(6,13,24,.99) !important; border-bottom:1px solid rgba(255,255,255,.09) !important; backdrop-filter:blur(20px) !important; }
html body .mobile-nav .nav-link { color:#B6CEEC !important; -webkit-text-fill-color:#B6CEEC !important; border-bottom:1px solid rgba(255,255,255,.06) !important; background:transparent !important; box-shadow:none !important; }
html body .mobile-nav .nav-link.active,
html body .mobile-nav .nav-link:hover { color:var(--p15-teal) !important; -webkit-text-fill-color:var(--p15-teal) !important; background:rgba(0,224,168,.06) !important; }
html body .mobile-nav .account-link-register { background:var(--p15-teal) !important; color:#040F1A !important; border:none !important; box-shadow:none !important; }

/* ══ 4. HERO BACKDROP — dot grid only ═══════════════════════ */
.hero-backdrop { position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.hero-backdrop .glow,.hero-backdrop .glow-1,.hero-backdrop .glow-2 { display:none !important; opacity:0 !important; }
.hero-topo { display:none !important; }
.hero-backdrop .grid-lines {
  position:absolute; inset:0;
  background-image:radial-gradient(circle,rgba(255,255,255,0.085) 1px,transparent 1px);
  background-size:44px 44px; background-position:-1px -1px;
  opacity:1 !important; animation:none !important;
}
.hero-backdrop::after {
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(90deg,rgba(7,15,26,.65) 0%,transparent 35%,transparent 65%,rgba(7,15,26,.65) 100%),
    linear-gradient(180deg,rgba(7,15,26,.0) 55%,var(--p15-bg) 100%);
  pointer-events:none;
}

/* ══ 5. HERO LAYOUT ══════════════════════════════════════════ */
.hero.hero-home { min-height:90vh; background:var(--p15-bg); display:flex; align-items:center; position:relative; overflow:hidden; }
.hero .hero-grid { display:grid; grid-template-columns:52% 45%; gap:3%; align-items:center; position:relative; z-index:2; padding-top:88px; padding-bottom:72px; }
@media (max-width:960px) { .hero .hero-grid { grid-template-columns:1fr; gap:40px; } }

/* Eyebrow */
.hero-copy .eyebrow {
  display:inline-flex !important; align-items:center !important; gap:8px !important;
  font-family:var(--v99-mono) !important; font-size:10.5px !important; font-weight:600 !important;
  letter-spacing:.13em !important; text-transform:uppercase !important;
  color:var(--p15-teal) !important; -webkit-text-fill-color:var(--p15-teal) !important;
  background:rgba(0,224,168,.09) !important; border:1px solid rgba(0,224,168,.22) !important;
  border-radius:4px !important; padding:5px 12px 5px 10px !important; margin-bottom:20px !important;
}
.hero-copy .eyebrow::before {
  content:"" !important; display:inline-block !important; width:6px !important; height:6px !important;
  background:var(--p15-teal) !important; border-radius:50% !important; flex-shrink:0 !important;
  box-shadow:0 0 0 3px rgba(0,224,168,.22) !important;
  animation:p15-blink 2.4s ease-in-out infinite !important;
}
@keyframes p15-blink {
  0%,100%{opacity:1;box-shadow:0 0 0 3px rgba(0,224,168,.22);}
  50%{opacity:.65;box-shadow:0 0 0 5px rgba(0,224,168,.08);}
}
.hero-copy h1 { font-size:clamp(30px,3.8vw,54px) !important; font-weight:800 !important; line-height:1.06 !important; letter-spacing:-.032em !important; color:#EDF5FF !important; margin-bottom:18px !important; }
.hero-copy .hero-text { font-size:clamp(15px,1.4vw,17px) !important; line-height:1.70 !important; color:var(--p15-muted) !important; max-width:500px !important; margin-bottom:32px !important; }
.hero-note { display:flex !important; align-items:center !important; gap:7px !important; font-size:12.5px !important; color:var(--p15-muted) !important; margin-bottom:20px !important; }
.hero-note svg { color:var(--p15-teal) !important; width:14px !important; height:14px !important; }
.hero-proof-list { display:flex !important; flex-wrap:wrap !important; gap:8px 24px !important; }
.hero-proof-item { display:flex !important; align-items:center !important; gap:6px !important; font-size:13px !important; color:var(--p15-muted) !important; }
.hero-proof-item svg { color:var(--p15-teal) !important; width:13px !important; height:13px !important; flex-shrink:0 !important; }

/* ══ 6. HERO NOC CARD — opaque, clearly a card ══════════════ */
.hero-netmap {
  background: var(--p15-card) !important;
  border: 1px solid rgba(0,224,168,0.28) !important;
  border-radius: var(--p15-r-lg) !important;
  box-shadow: 0 0 0 1px rgba(0,224,168,0.06), inset 0 1px 0 rgba(255,255,255,0.06), 0 24px 64px rgba(0,0,0,0.55) !important;
  overflow: hidden !important;
  position: relative !important;
  isolation: isolate !important;
}
.hero-netmap::before {
  content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,transparent,rgba(0,224,168,.50),transparent);
  pointer-events:none;
}
.netmap-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px 12px; border-bottom:1px solid rgba(255,255,255,0.07);
  background:rgba(0,224,168,0.04);
}
.netmap-live { display:flex; align-items:center; gap:8px; font-family:var(--v99-mono); font-size:11px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--p15-muted); }
.netmap-live::before { content:""; width:7px; height:7px; background:var(--p15-green); border-radius:50%; box-shadow:0 0 0 2px rgba(34,212,122,.25); animation:p15-blink 2s ease-in-out infinite; }
.netmap-asn { font-family:var(--v99-mono); font-size:10px; color:var(--p15-faint); letter-spacing:.06em; }

/* ── NOC topology ── */
.netmap-topo {
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 18px 16px; gap:8px; min-height:120px;
  background:rgba(0,0,0,0.20);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.noc-layer { display:flex; flex-direction:column; gap:10px; }
.noc-node {
  display:flex; flex-direction:column; align-items:center; gap:2px;
  background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.10);
  border-radius:8px; padding:8px 12px; min-width:58px;
}
.noc-node-attack {
  background:rgba(255,61,80,0.06) !important;
  border-color:rgba(255,61,80,0.28) !important;
  border-style:dashed !important;
}
.noc-node-client {
  background:rgba(0,224,168,0.05) !important;
  border-color:rgba(0,224,168,0.20) !important;
}
.noc-asn { font-family:var(--v99-mono); font-size:10px; font-weight:700; color:#EDF5FF; letter-spacing:.04em; }
.noc-node-attack .noc-asn { color:var(--p15-red); }
.noc-node-client .noc-asn { color:var(--p15-teal); }
.noc-label { font-family:var(--v99-mono); font-size:8px; color:var(--p15-faint); letter-spacing:.06em; text-transform:uppercase; }

/* Arrows between nodes */
.noc-arrows { display:flex; flex-direction:column; gap:12px; align-items:center; flex:1; padding:0 4px; }
.noc-arrow { display:block; width:100%; }
.noc-arrow svg { width:100%; height:16px; }

/* Scrubbing center */
.noc-scrubber {
  display:flex; flex-direction:column; align-items:center; gap:4px;
  background:rgba(0,224,168,0.07); border:1px solid rgba(0,224,168,0.32);
  border-radius:10px; padding:12px 14px;
}
.noc-shield-icon svg { width:32px; height:36px; display:block; }
.noc-scrubber-label { font-family:var(--v99-mono); font-size:9px; font-weight:700; color:var(--p15-teal); letter-spacing:.10em; text-transform:uppercase; }
.noc-scrubber-sub { font-family:var(--v99-mono); font-size:7px; color:rgba(0,224,168,.50); letter-spacing:.10em; text-transform:uppercase; }

.noc-arrow-out { display:flex; align-items:center; padding:0 4px; flex:0 0 52px; }
.noc-arrow-out svg { width:52px; height:16px; }

/* ── Metrics ── */
.netmap-metrics { padding:12px 18px 14px; display:flex; flex-direction:column; gap:9px; }
.netmap-metric-row { display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; }
.netmap-metric-label { font-size:11.5px; color:var(--p15-muted); font-family:var(--v99-mono); }
.netmap-metric-bar { display:flex; align-items:center; gap:8px; }
.netmap-metric-bar-track { width:64px; height:4px; background:rgba(255,255,255,0.08); border-radius:2px; overflow:hidden; }
.netmap-metric-bar-fill { height:100%; border-radius:2px; }
.netmap-metric-value { font-family:var(--v99-mono); font-size:11.5px; font-weight:700; white-space:nowrap; min-width:80px; text-align:right; }
.m-total  .netmap-metric-bar-fill { background:var(--p15-blue); width:80%; }
.m-attack .netmap-metric-bar-fill { background:var(--p15-red);  width:60%; }
.m-clean  .netmap-metric-bar-fill { background:var(--p15-teal); width:22%; }
.m-total  .netmap-metric-value { color:var(--p15-blue); }
.m-attack .netmap-metric-value { color:var(--p15-red); }
.m-clean  .netmap-metric-value { color:var(--p15-teal); }

.netmap-footer {
  padding:11px 18px; background:rgba(0,224,168,0.05);
  border-top:1px solid rgba(0,224,168,0.12);
  font-family:var(--v99-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.05em; color:var(--p15-teal); text-transform:uppercase;
  text-align:center;
}

/* ══ 7. BUTTONS ══════════════════════════════════════════════ */
html body .button-primary,
html body a.button-primary,
html body .px26-btn-primary {
  background:var(--p15-teal) !important; color:#040F1A !important;
  border:none !important; box-shadow:none !important;
  border-radius:var(--p15-r-sm) !important; font-weight:700 !important;
  letter-spacing:.01em !important; transition:background .18s,transform .15s !important;
}
html body .button-primary:hover,
html body a.button-primary:hover { background:#1AEDB8 !important; transform:translateY(-1px) !important; box-shadow:0 6px 24px rgba(0,224,168,.28) !important; }
html body .button-secondary { background:rgba(53,120,255,.12) !important; color:#6EAAFF !important; border:1px solid rgba(53,120,255,.28) !important; box-shadow:none !important; border-radius:var(--p15-r-sm) !important; }
html body .button-secondary:hover { background:rgba(53,120,255,.20) !important; border-color:rgba(53,120,255,.45) !important; }
html body .button-ghost,
html body a.button-ghost { background:transparent !important; color:var(--p15-muted) !important; border:1px solid rgba(255,255,255,.16) !important; box-shadow:none !important; border-radius:var(--p15-r-sm) !important; }
html body .button-ghost:hover { background:rgba(255,255,255,.06) !important; border-color:rgba(255,255,255,.28) !important; color:var(--p15-text) !important; }

/* ══ 8. EYEBROW ══════════════════════════════════════════════ */
html body .eyebrow,
html body span.eyebrow {
  font-family:var(--v99-mono) !important; font-size:11px !important;
  letter-spacing:.12em !important; text-transform:uppercase !important;
  color:var(--p15-teal) !important; -webkit-text-fill-color:var(--p15-teal) !important; font-weight:600 !important;
}

/* ══ 9. CARDS — visible dark surfaces ═══════════════════════ */
html body .glass-card {
  background: var(--p15-card) !important;
  border: 1px solid rgba(255,255,255,0.095) !important;
  border-radius: var(--p15-r-lg) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06) !important;
}
html body .glass-card:hover {
  background: var(--p15-card2) !important;
  border-color: rgba(255,255,255,0.14) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.07), 0 4px 28px rgba(0,0,0,0.35) !important;
}
html body .glass-card .card-icon { color:var(--p15-teal) !important; animation:none !important; }
html body .feature-card .card-icon { animation:none !important; }

/* ══ 10. SECTIONS ════════════════════════════════════════════ */
html body .section { background:var(--p15-bg) !important; }
html body .section-alt {
  background: var(--p15-bg2) !important;
  border-top:1px solid rgba(255,255,255,0.06) !important;
  border-bottom:1px solid rgba(255,255,255,0.06) !important;
}
html body .trust-strip { background:rgba(255,255,255,0.025) !important; border-top:1px solid rgba(255,255,255,0.07) !important; border-bottom:1px solid rgba(255,255,255,0.07) !important; }
html body .trust-pill { font-family:var(--v99-mono) !important; font-size:12px !important; font-weight:600 !important; letter-spacing:.06em !important; color:var(--p15-muted) !important; padding:5px 14px !important; background:rgba(255,255,255,.04) !important; border:1px solid rgba(255,255,255,.09) !important; border-radius:4px !important; }

/* ══ 11. PRICING / HERO-PANEL CARDS ══════════════════════════ */
html body .pricing-card { background:var(--p15-card) !important; border:1px solid rgba(255,255,255,.095) !important; border-radius:var(--p15-r-lg) !important; }
html body .pricing-card.featured { background:rgba(0,224,168,.08) !important; border-color:rgba(0,224,168,.32) !important; box-shadow:0 0 0 1px rgba(0,224,168,.10) !important; }
html body .hero-panel-card { background:var(--p15-card) !important; border:1px solid rgba(255,255,255,.095) !important; border-radius:var(--p15-r-lg) !important; }
html body .hero-panel-card.panel-primary { background:var(--p15-card2) !important; border-color:rgba(255,255,255,.12) !important; }
html body .hero-panel-card.panel-secondary { background:rgba(0,224,168,.06) !important; border-color:rgba(0,224,168,.20) !important; }

/* ══ 12. REVEALS ══════════════════════════════════════════════ */
html body .reveal { opacity:0; transform:translateY(16px); transition:opacity .55s cubic-bezier(.22,.68,.2,1),transform .55s cubic-bezier(.22,.68,.2,1); }
html body .reveal.revealed,
html body .reveal.visible { opacity:1; transform:none; }

/* ══ 13. ACCENTS & ICONS ══════════════════════════════════════ */
html body .feature-inline svg,
html body .check-list svg,
html body .enterprise-bullet svg,
html body .hero-proof-item svg { color:var(--p15-teal) !important; }
html body .eyebrow,html body span.eyebrow { color:var(--p15-teal) !important; -webkit-text-fill-color:var(--p15-teal) !important; }
html body .mini-metric { color:var(--p15-teal) !important; }
html body .panel-kicker { font-family:var(--v99-mono) !important; font-size:10.5px !important; letter-spacing:.12em !important; text-transform:uppercase !important; color:var(--p15-muted) !important; }

/* ══ 14. SEO MESH ══════════════════════════════════════════════ */
html body .seo-mesh-card { background:var(--p15-card) !important; border:1px solid rgba(255,255,255,.09) !important; border-radius:var(--p15-r) !important; color:var(--p15-muted) !important; transition:background .18s,border-color .18s,color .18s !important; }
html body .seo-mesh-card:hover { background:var(--p15-card2) !important; border-color:rgba(0,224,168,.25) !important; color:var(--p15-text) !important; }
html body .seo-mesh-card strong { color:var(--p15-text) !important; }

/* ══ 15. FOOTER ══════════════════════════════════════════════ */
html body .site-footer { border-top:1px solid rgba(255,255,255,.08) !important; background:var(--p15-bg) !important; }
html body .site-footer a:hover { color:var(--p15-teal) !important; }

/* ══ 16. KILL remaining glows / other hero backdrops ════════ */
.transit-hero-backdrop-v81 .glow,
.transit-hero-backdrop-v81 .glow-1,
.transit-hero-backdrop-v81 .glow-2 { display:none !important; }
html body [class*="aurora"] { animation:none !important; }

/* ══ 17. SCROLLBAR ════════════════════════════════════════════ */
::-webkit-scrollbar { width:6px; background:var(--p15-bg2); }
::-webkit-scrollbar-thumb { background:rgba(255,255,255,.14); border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:rgba(255,255,255,.22); }

/* ══ 18. PXV93 HOME — hero section overrides ════════════════ */
.pxv93-hero {
  background: var(--p15-bg) !important;
  background-image: none !important;
}
.pxv93-hero::before {
  background: linear-gradient(90deg,transparent,rgba(0,224,168,0.18),transparent) !important;
}

/* Kill blue/cyan grid lines, use our dot grid */
.pxv93-grid-bg {
  background-image: radial-gradient(circle,rgba(255,255,255,0.075) 1px,transparent 1px) !important;
  background-size: 44px 44px !important;
  background-position: -1px -1px !important;
  opacity: 0.6 !important;
}

/* Balanced two-column hero grid */
.pxv93-hero-grid {
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
  gap: 48px !important;
  padding-top: 96px !important;
  padding-bottom: 72px !important;
}
@media (max-width:1024px) {
  .pxv93-hero-grid { grid-template-columns: 1fr !important; }
  .pxv93-hero-visual { order: -1 !important; }
}

/* Kill hero visual glow */
.pxv93-hero-visual { min-height: auto !important; }
.pxv93-hero-visual::before { display:none !important; background:none !important; }

/* Kill float animation (visual is now a card, not an image) */
@media (prefers-reduced-motion: no-preference) {
  .pxv93-hero-visual img { animation: none !important; }
}

/* Eyebrow → our teal */
.pxv93-eyebrow {
  color: var(--p15-teal) !important;
  -webkit-text-fill-color: var(--p15-teal) !important;
  font-size: 10.5px !important;
  letter-spacing: .14em !important;
}

/* Primary button → solid teal */
.pxv93-primary {
  background: var(--p15-teal) !important;
  color: #040F1A !important;
  -webkit-text-fill-color: #040F1A !important;
  border: none !important;
  box-shadow: none !important;
}
.pxv93-primary:hover {
  background: #1AEDB8 !important;
  box-shadow: 0 6px 24px rgba(0,224,168,0.30) !important;
  transform: translateY(-1px) !important;
}
.pxv93-ghost {
  background: transparent !important;
  color: var(--p15-muted) !important;
  -webkit-text-fill-color: var(--p15-muted) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  box-shadow: none !important;
}
.pxv93-ghost:hover {
  background: rgba(255,255,255,0.06) !important;
  border-color: rgba(255,255,255,0.30) !important;
  color: var(--p15-text) !important;
  -webkit-text-fill-color: var(--p15-text) !important;
}

/* Nav underline animation → our teal */
.site-header .desktop-nav a::after {
  background: linear-gradient(90deg,transparent,var(--p15-teal),transparent) !important;
}

/* ══ 19. NOC SVG PANEL ═══════════════════════════════════════ */
.netmap-svg-wrap { padding: 12px 18px 4px; }
.netmap-svg-wrap svg { width: 100%; height: auto; display: block; }

/* Animated packet keyframes */
@keyframes p15-flow {
  from { offset-distance: 0%; opacity: 1; }
  to   { offset-distance: 100%; opacity: 0; }
}
@keyframes p15-flow-atk {
  0%  { offset-distance: 0%;   opacity: 1;   }
  65% { offset-distance: 80%;  opacity: 0.9; }
  80% { offset-distance: 90%;  opacity: 0;   }
  100%{ offset-distance: 100%; opacity: 0;   }
}
@keyframes p15-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.p15-pkt   { animation: p15-flow 2.6s linear infinite; }
.p15-pkt-2 { animation: p15-flow 2.6s linear infinite 1.3s; }
.p15-pkt-atk   { animation: p15-flow-atk 2.0s linear infinite; }
.p15-pkt-atk-2 { animation: p15-flow-atk 2.0s linear infinite 1.0s; }

.p15-shield-ring {
  transform-box: fill-box;
  transform-origin: center;
  animation: p15-spin 22s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .p15-pkt,.p15-pkt-2,.p15-pkt-atk,.p15-pkt-atk-2,.p15-shield-ring { animation: none !important; }
}
