
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{background:#0f172a;color:#cbd5e1;font-family:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
  h1,h2,h3,h4{font-family:'Plus Jakarta Sans',sans-serif;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;padding:0;}
  a{color:#22d3ee;text-decoration:none;}
  a:hover{color:#67e8f9;}
  ::selection{background:rgba(34,211,238,0.3);color:#f0f9ff;}
  ::-webkit-scrollbar{width:11px;height:11px;}
  ::-webkit-scrollbar-track{background:#0f172a;}
  ::-webkit-scrollbar-thumb{background:#1e2b44;border-radius:8px;border:3px solid #0f172a;}
  @keyframes r-dash{to{stroke-dashoffset:-140;}}
  .r-dash{stroke-dasharray:5 7;animation:r-dash 2.2s linear infinite;}
  @keyframes r-pulse{0%,100%{opacity:.35;}50%{opacity:1;}}
  .r-pulse{animation:r-pulse 2.4s ease-in-out infinite;}
  @media (prefers-reduced-motion: reduce){.r-dash{animation:none;}.r-pulse{animation:none;opacity:.8;}}

  /* Hover fallbacks (also applied via JS for data-hover) */
  button[data-action]:focus-visible { outline: 2px solid #22d3ee; outline-offset: 2px; }
  .btn-primary:hover { background: #22d3ee !important; transform: translateY(-2px); color: #04141b !important; }
  .btn-ghost:hover { border-color: #22d3ee !important; }
  .btn-cyan:hover { background: #22d3ee !important; color: #04141b !important; }
  .module-card:hover { transform: translateY(-4px); border-color: #0e7490 !important; background: #0c1626 !important; }
  .nav-link:hover { color: #f0f9ff !important; }
  .text-link:hover { color: #67e8f9 !important; }
  .footer-link:hover { color: #22d3ee !important; }
  .dl-svg:hover { border-color: #22d3ee !important; }

  @media (max-width: 900px) {
    .hero-grid { grid-template-columns: 1fr !important; }
    .docs-grid { grid-template-columns: 1fr !important; }
  }
  @media (max-width: 780px) {
    .nav-links { display: none !important; }
    .nav-links.is-open {
      display: flex !important;
      position: absolute; top: 70px; left: 0; right: 0;
      flex-direction: column; align-items: stretch;
      background: rgba(15,23,42,0.97); padding: 12px 16px 20px;
      border-bottom: 1px solid #1b2942; gap: 4px;
    }
    .nav-toggle { display: inline-flex !important; }
  }
  .nav-toggle {
    display: none; align-items: center; justify-content: center;
    width: 42px; height: 42px; border-radius: 8px; border: 1px solid #2d3f5c; color: #e2e8f0;
  }

  .map-node.is-active {
    background: #0c1c2b !important;
    border-color: #22d3ee !important;
    box-shadow: 0 12px 34px -14px rgba(34,211,238,0.55) !important;
    opacity: 1 !important;
  }
  .map-node.is-dim { opacity: 0.5 !important; }
  .map-node:hover {
    background: #0c1c2b !important;
    border-color: #22d3ee !important;
    box-shadow: 0 12px 34px -14px rgba(34,211,238,0.55) !important;
  }

  .module-card:hover { transform: translateY(-4px); border-color: #0e7490 !important; background: #0c1626 !important; }

  @media (max-width: 900px) {
    .module-signal-grid { grid-template-columns: 1fr !important; }
  }
