/* Graphtacular theme (/graphtacular/): a Gephi render, like the homepage card. Black page,
   white dot field, monospace, green and purple nodes. Loaded after style.css on that page only. */
.theme-gephi {
  --bg: #000;
  --panel: #0a0a0a;
  --ink: #d6d6d6;
  --dim: #a8a8a8;
  --line: #1f1f1f;
  --accent: #39d353;      /* green node */
  --accent-soft: #4ade80;
  --purple: #9b59ff;      /* purple node */
  --lilac: #c4a3ff;
  --mono: Consolas, "Cascadia Mono", "Lucida Console", ui-monospace, "DejaVu Sans Mono", monospace;
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.09) 0.8px, transparent 1.2px) 0 0 / 13px 13px,
    var(--bg);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 0.95rem;
  line-height: 1.75;
}
.theme-gephi .site-header, .theme-gephi .site-footer { background: rgba(0, 0, 0, 0.9); border-color: var(--line); }
.theme-gephi .site-nav a[aria-current="page"], .theme-gephi .site-nav a:hover { color: var(--accent-soft); }
.theme-gephi a { color: var(--lilac); }
.theme-gephi a:hover { color: #fff; }

.theme-gephi .banner { border: 1px solid #222; border-radius: 6px; margin: 0; box-shadow: 0 14px 40px rgba(155, 89, 255, 0.18); }
.theme-gephi .g-bar {
  display: flex; align-items: center; height: 2rem; margin: 0 0 2rem; padding: 0 1rem;
  color: var(--accent); border-bottom: 1px solid #1a1a1a; font-size: 0.75rem; white-space: nowrap; overflow: hidden;
}
.theme-gephi .g-bar span::before { content: "\25CF  "; color: var(--purple); white-space: pre; }

.theme-gephi h1 {
  font-family: var(--mono); font-weight: 700; font-size: 2.1rem; color: var(--accent-soft);
  text-shadow: 0 0 12px rgba(74, 222, 128, 0.45), 0 0 26px rgba(155, 89, 255, 0.35);
}
.theme-gephi .tag { display: inline-flex; margin: 0.2rem 0 1.4rem; font-size: 0.75rem; line-height: 1; letter-spacing: 0; text-transform: none; }
.theme-gephi .tag span { padding: 0.35rem 0.6rem; }
.theme-gephi .tag .k { background: #0d0d0d; color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.theme-gephi .tag .v { background: var(--purple); color: #fff; font-weight: 700; }
.theme-gephi .lead { color: var(--ink); font-size: 1rem; }

/* Section headings: a purple node, a green edge */
.theme-gephi h2 { font-family: var(--mono); color: var(--accent-soft); font-weight: 700; font-size: 1.05rem; border-bottom: 1px solid #1f3b27; margin-top: 2.4rem; }
.theme-gephi h2::before { content: ""; display: inline-block; width: 0.6em; height: 0.6em; margin-right: 0.65em; border-radius: 50%; background: var(--purple); box-shadow: 0 0 8px rgba(155, 89, 255, 0.8); vertical-align: 0.02em; }
.theme-gephi strong { color: #fff; }
.theme-gephi ul li::marker { color: var(--purple); }
.theme-gephi code { background: #111; color: var(--accent-soft); }

.theme-gephi pre {
  margin: 0 0 1rem; padding: 0.85rem 1rem; overflow-x: auto;
  background: rgba(10, 10, 10, 0.95); border: 1px solid #222; border-left: 3px solid var(--purple); border-radius: 4px;
  font-size: 0.82rem; line-height: 1.6; color: #cfcfcf;
}
.theme-gephi pre code { background: none; padding: 0; color: inherit; font-size: inherit; }
.theme-gephi pre .s { color: var(--accent-soft); }
.theme-gephi pre .n { color: var(--lilac); }
.theme-gephi pre .c { color: #6f6f6f; }

/* Renders: white Gephi canvases framed on the black field */
.theme-gephi .renders { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.25rem 0 1rem; }
.theme-gephi .renders figure { margin: 0; }
.theme-gephi .renders img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: #fff; border: 1px solid #222; border-radius: 4px; }
.theme-gephi figcaption { color: var(--dim); font-size: 0.8rem; }
.theme-gephi figcaption::before { content: "\25C9  "; color: var(--accent); white-space: pre; }

.theme-gephi .stats { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.theme-gephi .stats li { margin: 0; padding: 0.3rem 0.85rem; border-radius: 999px; background: rgba(155, 89, 255, 0.1); box-shadow: inset 0 0 0 1px #3a2466; color: var(--ink); font-size: 0.85rem; }
.theme-gephi .stats li b { color: var(--accent-soft); font-weight: 700; }

/* Repo link as the card's pill */
.theme-gephi .pill { display: inline-block; padding: 0.42rem 1rem; border-radius: 999px; color: var(--lilac); background: rgba(155, 89, 255, 0.1); box-shadow: inset 0 0 0 1px #3a2466; font-size: 0.88rem; }
.theme-gephi .pill::before { content: "\25C9  "; color: var(--accent); white-space: pre; }
.theme-gephi .pill:hover { text-decoration: none; color: #fff; box-shadow: inset 0 0 0 1px var(--purple); }

.theme-gephi .back a, .theme-gephi .site-footer a { color: var(--dim); }

@media (max-width: 640px) {
  .theme-gephi h1 { font-size: 1.7rem; }
  .theme-gephi .renders { grid-template-columns: 1fr; }
}

/* Consolas-style fonts run wide; keep the seven nav links on one line where they fit */
.theme-gephi .site-nav ul { font-size: 0.88rem; gap: 0.25rem 1.05rem; }

/* 2019 console screenshot */
.theme-gephi .console { margin: 1rem 0 1.25rem; }
.theme-gephi .console img { display: block; width: 100%; height: auto; border: 1px solid #222; border-radius: 4px; }
