.privacy-scene {
  --ps-paper: #151024;
  --ps-ink: #f5efff;
  --ps-muted: #a095b5;
  --ps-border: #332847;
  --ps-purple: #b18cff;
  color: var(--ps-ink);
  width: 100%;
  font-family: inherit;
  isolation: isolate;
}
.privacy-scene * { box-sizing: border-box; }
.ps-controls {
  display: flex;
  justify-content: flex-end;
  gap: 0;
  border-top: 1px solid var(--ps-border);
  border-bottom: 1px solid var(--ps-border);
}
.ps-step {
  appearance: none;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: var(--ps-ink);
  background: transparent;
  border: 0;
  border-left: 1px solid var(--ps-border);
  border-radius: 0;
  padding: 14px 20px;
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease;
}
.ps-step span {
  font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
  font-size: 9px;
  opacity: .55;
  margin-right: 10px;
}
.ps-step[aria-pressed="true"] { color: var(--ps-purple); background: rgba(177, 140, 255, .1); }
.ps-step:hover { background: rgba(177, 140, 255, .07); }
.ps-step[aria-pressed="true"]:hover { background: rgba(177, 140, 255, .14); }
.ps-step:focus-visible { outline: 2px solid var(--ps-purple); outline-offset: -4px; }
.ps-diagram { width: 100%; height: auto; display: block; overflow: visible; }
.ps-diagram text {
  font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
  fill: var(--ps-ink);
  user-select: none;
}
.ps-overline { font-size: 9px; font-weight: 600; letter-spacing: 1px; }
.ps-meta { font-size: 7px; letter-spacing: .65px; fill: var(--ps-muted) !important; }
.ps-tiny { font-size: 7px; letter-spacing: .45px; fill: var(--ps-muted) !important; }
.ps-bottom-label { font-size: 7px; letter-spacing: 1px; fill: var(--ps-muted) !important; }
.ps-rule, .ps-divider { stroke: var(--ps-border); stroke-width: .7; }
.ps-divider { stroke-dasharray: 2 5; }
.ps-paper { fill: var(--ps-paper); stroke: var(--ps-muted); stroke-width: 1.2; }
.ps-outline { stroke: var(--ps-muted); stroke-width: 1.2; }
.ps-ink { stroke: var(--ps-muted); stroke-width: 1; }
.ps-public-block { fill: var(--ps-muted); }
.ps-destination-line { stroke: var(--ps-muted); stroke-width: 1.2; stroke-dasharray: 2 3; }
.ps-track { stroke: var(--ps-muted); stroke-width: 1; stroke-dasharray: 2 4; opacity: .45; }
.ps-arrow { stroke: var(--ps-muted); stroke-width: 1; opacity: .55; }
.ps-port { fill: var(--ps-paper); stroke: var(--ps-muted); stroke-width: 1; }
.ps-envelope-paper { fill: var(--ps-paper); }
.ps-envelope-seam { stroke: var(--ps-muted); stroke-width: 1.3; }
.ps-envelope-fold { stroke: var(--ps-muted); stroke-width: 1; }
.ps-seal { fill: var(--ps-muted); stroke: var(--ps-muted); stroke-width: 1; }
.ps-seal-mark { stroke: var(--ps-paper); stroke-width: 1.2; }
.ps-note rect { fill: var(--ps-paper); stroke: var(--ps-muted); stroke-width: 1; }
.ps-note path { stroke: var(--ps-muted); stroke-width: .8; }
.ps-inner-track { stroke: var(--ps-muted); stroke-dasharray: 2 3; opacity: .5; }
.ps-cipher text { font-size: 8px; fill: var(--ps-purple); }
.ps-packet rect { fill: var(--ps-purple); }
.ps-packet path { stroke: var(--ps-purple); stroke-width: .8; }
.ps-arrival { stroke: var(--ps-purple); stroke-width: .8; }
.privacy-scene[data-stage="shield"] .ps-track-in,
.privacy-scene[data-stage="shield"] .ps-arrow-in,
.privacy-scene[data-stage="withdraw"] .ps-track-out,
.privacy-scene[data-stage="withdraw"] .ps-arrow-out,
.privacy-scene[data-stage="send"] .ps-inner-track { stroke: var(--ps-purple); opacity: .85; }
.privacy-scene[data-stage="send"] .ps-seal { fill: var(--ps-purple); stroke: var(--ps-purple); }
.privacy-scene[data-stage="send"] .ps-note-b rect { stroke: var(--ps-purple); }
.ps-caption {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 10px 18px 0;
  min-height: 75px;
}
.ps-caption-index {
  color: var(--ps-purple);
  font: 10px/1.6 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
  flex: 0 0 33px;
  padding-top: 1px;
}
.ps-caption-title { display: block; font-size: 13px; font-weight: 500; letter-spacing: -.15px; line-height: 1.5; }
.ps-caption-copy { margin: 4px 0 0; color: var(--ps-muted); font-size: 11px; line-height: 1.7; max-width: 420px; }
.ps-disclosure {
  margin: 11px 18px 0;
  padding-top: 13px;
  border-top: 1px solid var(--ps-border);
  font: 8px/1.6 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
  letter-spacing: .1px;
  color: var(--ps-muted);
}
.ps-disclosure span { margin: 0 7px; }
@media (max-width: 560px) {
  .ps-controls { justify-content: stretch; }
  .ps-step { flex: 1; padding: 13px 8px; font-size: 11px; }
  .ps-step:first-child { border-left: 0; }
  .ps-step span { margin-right: 5px; }
  .ps-caption { padding: 12px 0 0; gap: 10px; min-height: 83px; }
  .ps-caption-title { font-size: 12px; }
  .ps-caption-copy { font-size: 10px; }
  .ps-disclosure { margin-left: 0; margin-right: 0; font-size: 7px; }
}
@media (prefers-reduced-motion: reduce) { .ps-step { transition: none; } }
