/* Focused visual corrections. Keep after the production styles. */
.site-header[data-header].is-scrolled,
.site-header[data-header]:has(.mnav[open]) {
  background: var(--bg);
  border-bottom-color: var(--border);
}

@media (max-width: 600px) {
  /* Both app screens participate in layout, including their full height. */
  .tile--themes .vis-themes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    align-items: start;
    justify-items: center;
    min-height: 0;
    flex: none;
    padding: 28px 22px 14px;
    overflow: visible;
  }
  .tile--themes .vis-themes img[class] {
    position: relative;
    inset: auto !important;
    width: 100%;
    height: auto;
    max-width: 160px;
    border-width: 4px;
    border-radius: 16px;
  }

  /* SVG units scale to about 12 CSS pixels at a 390px viewport. */
  .psw__svg.psw__svg.psw__svg text,
  .psw__svg.psw__svg.psw__svg .cap {
    font-size: 26px;
    letter-spacing: 0;
  }
  .psw__svg.psw__svg .node--small text { font-size: 24px; }
  .psw__svg .node:not(.node--server):not(.node--small) > text {
    text-anchor: start;
    transform: translate(-50px, 22px);
  }
  .psw__svg .node--server > text {
    text-anchor: end;
    transform: translate(50px, 26px);
  }
  .psw__svg .wall > text { transform: translateY(12px); }
  .psw__panel[data-k="fastdns"] .cap:not(.cap--route) {
    transform: translateY(-12px);
  }
  .psw__panel[data-k="camo"] .cap--route {
    transform: translate(40px, -24px);
  }
}
