.local { padding:0; overflow:hidden; }
.privacy-graph { position:relative; width:100%; height:680px; overflow:hidden; }
.privacy-edges { position:absolute; inset:0; z-index:0; width:100%; height:100%; overflow:visible; }
.privacy-edges line { stroke:rgba(255,255,255,.2); stroke-width:1; stroke-dasharray:4 8; vector-effect:non-scaling-stroke; animation:privacyEdge 7s linear infinite; }
.privacy-edges line:nth-child(2n) { animation-direction:reverse; animation-duration:9s; }
@keyframes privacyEdge { to { stroke-dashoffset:-48; } }
.privacy-origin { position:absolute; z-index:2; left:50%; top:48%; width:min(760px,76vw); margin:0; transform:translate(-50%,-50%); text-align:center; pointer-events:none; }
.privacy-node { position:absolute; z-index:2; width:126px; height:126px; border:1px solid rgba(255,255,255,.22); border-radius:50%; display:grid; place-items:center; text-align:center; color:#b8b8bc; background:rgba(18,18,20,.58); box-shadow:inset 0 1px rgba(255,255,255,.13),0 16px 38px rgba(0,0,0,.2); backdrop-filter:blur(18px) saturate(135%); -webkit-backdrop-filter:blur(18px) saturate(135%); font:10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.035em; will-change:transform; }

@media (max-width:820px) {
  .local { padding:0; }
  .privacy-graph { height:610px; }
  .privacy-origin { top:47%; width:calc(100% - 44px); }
  .privacy-node { width:92px; height:92px; font-size:8px; }
}

@media (prefers-reduced-motion:reduce) {
  .privacy-edges line { animation:none; }
  .privacy-node { will-change:auto; }
}
