
:root {
  --bg: #000000; --surface: #0d0d0d; --surface-2: #161616;
  --ink: #ffffff; --ink-dim: #a3a3a3; --border: #2a2a2a; --border-strong: #454545;
  --accent: #ffffff;
  --mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;
  --sans: "Inter", "Roboto", system-ui, sans-serif;
}
@media (prefers-color-scheme: light) {
  :root { --bg:#ffffff; --surface:#f7f7f7; --surface-2:#efefef; --ink:#000000; --ink-dim:#5c5c5c; --border:#e0e0e0; --border-strong:#c4c4c4; --accent:#000000; }
}
:root[data-theme="dark"] { --bg:#000000; --surface:#0d0d0d; --surface-2:#161616; --ink:#ffffff; --ink-dim:#a3a3a3; --border:#2a2a2a; --border-strong:#454545; --accent:#ffffff; }
:root[data-theme="light"] { --bg:#ffffff; --surface:#f7f7f7; --surface-2:#efefef; --ink:#000000; --ink-dim:#5c5c5c; --border:#e0e0e0; --border-strong:#c4c4c4; --accent:#000000; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.6; }
a { color: var(--ink); text-decoration:underline; }
a:hover { opacity: 0.8; }
a:focus-visible, input:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.wrap { max-width: 920px; margin:0 auto; padding:0 24px 96px; }
.topbar { border-bottom:1px solid var(--border); background:var(--surface); position:relative; }
.topbar-inner { max-width:920px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.brand { font-weight:600; font-size:1.05rem; color:var(--ink); text-decoration:none; }
.brand span { color: var(--ink-dim); font-weight: 400; }
.topbar-right { display:flex; align-items:center; gap:14px; }
.search { font:inherit; font-size:0.88rem; padding:7px 12px; border:1px solid var(--border-strong); border-radius:4px; background:var(--bg); color:var(--ink); width:220px; }
.cta-link { font-size:0.88rem; font-weight:600; white-space:nowrap; padding: 6px 14px; border: 1px solid var(--border-strong); border-radius: 4px; text-decoration: none; }
.search-results { position:absolute; top:100%; right:24px; width:320px; max-height:360px; overflow-y:auto; background:var(--surface); border:1px solid var(--border); border-top:none; box-shadow:0 8px 24px rgba(0,0,0,0.3); z-index:10; display:none; }
.search-results.open { display:block; }
.search-results a { display:block; padding:8px 14px; font-size:0.86rem; color:var(--ink); border-bottom:1px solid var(--border); text-decoration:none; }
.search-results a:hover { background:var(--surface-2); }
.search-results .type { color:var(--ink-dim); font-size:0.74rem; text-transform:uppercase; letter-spacing:0.04em; }
.crumbs { font-size:0.82rem; color:var(--ink-dim); margin:28px 0 8px; display:flex; flex-wrap:wrap; gap:6px; }
.crumbs a { color:var(--ink-dim); text-decoration:none; }
.crumbs a:hover { color:var(--ink); }
h1 { font-size:clamp(1.6rem,3.2vw,2.3rem); margin:0 0 10px; text-wrap:balance; letter-spacing:-0.01em; }
.meta-strip { display:flex; flex-wrap:wrap; gap:10px 18px; font-size:0.88rem; color:var(--ink-dim); margin:0 0 22px; }
.meta-strip strong { color:var(--ink); font-weight:600; }
.lede { font-size:1.05rem; max-width:66ch; margin:0 0 32px; color: var(--ink-dim); }
.stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:1px; background:var(--border); border:1px solid var(--border); margin-bottom:40px; }
.stat { background:var(--surface); padding:18px 16px; }
.stat .n { font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:1.5rem; font-weight:600; color:var(--ink); display:block; }
.stat .l { font-size:0.74rem; color:var(--ink-dim); text-transform:uppercase; letter-spacing:0.05em; }
h2 { font-size:1.3rem; margin:44px 0 14px; text-wrap:balance; }
section > p { max-width:68ch; color: var(--ink-dim); }
.table-scroll { overflow-x:auto; border:1px solid var(--border); }
table { border-collapse:collapse; width:100%; min-width:560px; font-size:0.87rem; }
thead th { text-align:left; font-weight:600; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-dim); padding:10px 14px; background:var(--surface-2); border-bottom:1px solid var(--border); white-space:nowrap; }
tbody td { padding:9px 14px; border-bottom:1px solid var(--border); white-space:nowrap; }
tbody tr:last-child td { border-bottom:none; }
tbody tr:hover { background:var(--surface-2); }
.price { font-family:var(--mono); font-variant-numeric:tabular-nums; font-weight: 600; }
.best-row { background: var(--surface-2); }
.quick-answer { margin:0 0 20px; padding:16px 20px; border-left:3px solid var(--ink); background:var(--surface); }
.quick-answer .qa-label { display:block; font-size:0.68rem; font-weight:700; text-transform:uppercase; letter-spacing:0.07em; color:var(--ink-dim); margin-bottom:6px; }
.quick-answer p { margin:0; max-width:none; color:var(--ink); font-size:0.94rem; }
.cta-box { margin:16px 0 0; padding:20px; border:1px solid var(--border-strong); background:var(--surface-2); }
.cta-box p { margin:0 0 14px; font-size:0.9rem; color:var(--ink-dim); max-width:60ch; }
.buy-btn { display:inline-flex; align-items:center; gap:8px; background:var(--ink); color:var(--bg); font-weight:600; font-size:0.95rem; padding:11px 20px; border-radius: 4px; text-decoration:none; }
.buy-btn:hover { opacity: 0.85; }
.country-tag { display:inline-block; padding:1px 8px; border:1px solid var(--border); border-radius:3px; font-size:0.78rem; color:var(--ink-dim); }
.verified-tag { display:inline-block; padding:1px 7px; border:1px solid var(--border-strong); border-radius:3px; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-dim); vertical-align:1px; }
.link-row { display:flex; flex-wrap:wrap; gap:10px 24px; margin:14px 0 0; font-size:0.92rem; }
.faq-item { border-top:1px solid var(--border); padding:16px 0; }
.faq-item:last-child { border-bottom:1px solid var(--border); }
.faq-item h3 { font-size:1rem; font-weight:600; margin:0 0 8px; }
.faq-item p { margin:0; color:var(--ink-dim); max-width:66ch; }
.cta { margin-top:52px; padding:30px; background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--ink); }
.cta-eyebrow { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--ink-dim); font-weight:600; }
.cta p { max-width:60ch; color:var(--ink-dim); margin:0 0 18px; }
.btn { display:inline-flex; align-items:center; gap:8px; background:var(--ink); color:var(--bg); font-weight:600; font-size:0.92rem; padding:10px 18px; text-decoration:none; border-radius: 4px; }
.btn:hover { opacity: 0.85; }
footer { margin-top:52px; padding-top:22px; border-top:1px solid var(--border); font-size:0.83rem; color:var(--ink-dim); }
footer .related { margin-bottom:12px; }
footer .related a { margin-right:18px; }
.disclaimer { font-size:0.77rem; opacity:0.85; max-width:66ch; }
.az-list { columns: 2; column-gap: 32px; list-style:none; margin:0; padding:0; }
.az-list li { margin-bottom:6px; break-inside: avoid; }
.az-list .n { color:var(--ink-dim); font-family:var(--mono); font-size:0.82rem; }

/* -- Proximity visualization (broker server <-> VPS) -- */
.proximity-viz { display:flex; align-items:center; gap:0; margin:0 0 36px; padding:26px 22px; background:var(--surface); border:1px solid var(--border); }
.viz-node { display:flex; flex-direction:column; align-items:center; text-align:center; width:132px; flex-shrink:0; }
.viz-icon { width:44px; height:44px; border-radius:50%; border:1px solid var(--border-strong); display:flex; align-items:center; justify-content:center; color:var(--ink); margin-bottom:10px; background:var(--surface-2); }
.viz-label { font-size:0.82rem; font-weight:600; color:var(--ink); line-height:1.4; }
.viz-label span { display:block; font-weight:400; color:var(--ink-dim); font-size:0.76rem; margin-top:2px; }
.viz-track { flex:1; position:relative; height:44px; margin:0 6px; min-width:60px; }
.viz-line { position:absolute; top:50%; left:0; right:0; height:0; border-top:2px dashed var(--border-strong); transform:translateY(-50%); }
.viz-pulse { position:absolute; top:50%; left:0; width:8px; height:8px; margin-top:-4px; border-radius:50%; background:var(--ink); box-shadow:0 0 0 4px color-mix(in srgb, var(--ink) 14%, transparent); animation:viz-travel 2.4s ease-in-out infinite; }
.viz-metric { position:absolute; left:50%; top:-6px; transform:translate(-50%,-100%); text-align:center; white-space:nowrap; }
.viz-metric strong { display:block; font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:1.15rem; font-weight:600; color:var(--ink); }
.viz-metric span { display:block; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-dim); margin-top:1px; }
@keyframes viz-travel {
  0% { left:0; opacity:0; }
  8% { opacity:1; }
  92% { opacity:1; }
  100% { left:100%; opacity:0; }
}
@media (prefers-reduced-motion: reduce) {
  .viz-pulse { animation:none; left:50%; opacity:1; }
}
@media (max-width:640px) {
  .proximity-viz { padding:20px 14px; }
  .viz-node { width:84px; }
  .viz-icon { width:36px; height:36px; }
  .viz-label { font-size:0.72rem; }
  .viz-label span { font-size:0.68rem; }
  .viz-metric strong { font-size:0.95rem; }
}

/* -- Hub decorative network glyph -- */
.hero-row { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.hero-row > div:first-child { flex:1; min-width:260px; }
.network-glyph { width:180px; height:98px; color:var(--ink-dim); flex-shrink:0; }
.node-dot { fill:var(--ink); animation:node-pulse 2.6s ease-in-out infinite; }
.node-dot.main { animation-delay:0.3s; }
@keyframes node-pulse { 0%,100% { opacity:0.45; } 50% { opacity:1; } }
@media (prefers-reduced-motion: reduce) { .node-dot { animation:none; opacity:0.85; } }
@media (max-width:640px) { .search { width:150px; } .az-list { columns:1; } .network-glyph { display:none; } }
