:root:has(.flowmap){--sl-content-width:72rem}.flowmap{--color-ink:#0a0a0a;--color-charcoal:#3a3a3a;--color-paper:#fff9f5;--color-paper-dark:#fff0e8;--color-panel:#fff;--color-magenta:#c4177a;--color-violet:#7c3aed;--color-gold:#ffb800;--color-success:#15803d;--color-info:#2563eb;--color-danger:#dc2626;--color-disabled:#d6d2cc;--font-display:"Bricolage Grotesque Variable", ui-sans-serif, system-ui, sans-serif;--font-sans:"Rubik Variable", ui-sans-serif, system-ui, sans-serif;--font-hand:"Shantell Sans Variable", ui-rounded, cursive;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;color:var(--color-ink);font-family:var(--font-sans);scroll-margin-top:calc(var(--sl-nav-height,3.5rem) + 1rem);font-size:.9375rem;line-height:1.5}.flowmap *{box-sizing:border-box}.flowmap h2{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-ink);margin:0;font-size:1.5rem;font-weight:800;line-height:1.15}.flowmap p{margin:0}.flowmap b,.flowmap strong{font-weight:600}.flowmap :focus-visible{outline:3px solid var(--color-violet);outline-offset:0}.flowmap .kicker{text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:600}.flowmap code{font-family:var(--font-mono);background:var(--color-paper-dark);border:2px solid var(--color-ink);color:var(--color-ink);border-radius:4px;padding:0 5px;font-size:.8rem}.flowmap .ds-btn{border:2px solid var(--color-ink);box-shadow:3px 3px 0 0 var(--color-ink);font:inherit;text-transform:uppercase;letter-spacing:.025em;cursor:pointer;text-align:left;color:var(--color-ink);background:var(--color-panel);border-radius:6px;margin:0;padding:7px 14px;font-size:.8125rem;font-weight:600;transition:transform 80ms ease-out,box-shadow 80ms ease-out;display:inline-block}.flowmap .ds-btn:hover{box-shadow:4px 4px 0 0 var(--color-ink);transform:translate(-1px,-1px)}.flowmap .ds-btn:active{box-shadow:0 0 0 0 var(--color-ink);transform:translate(3px,3px)}.flowmap .ds-btn-primary{background:var(--color-magenta);color:#fff}.flowmap .ds-btn:disabled{background:var(--color-disabled);color:var(--color-charcoal);box-shadow:none;cursor:not-allowed;transform:none}.flowmap .ds-badge{border:2px solid var(--color-ink);background:var(--color-paper-dark);white-space:nowrap;border-radius:4px;padding:1px 8px;font-size:.75rem;font-weight:600;display:inline-block}.flowmap .flows{flex-wrap:wrap;gap:8px;padding:0 0 16px;display:flex}.flowmap .flows .ds-btn{padding:6px 10px;font-size:.75rem}.flowmap .flows .ds-btn[aria-pressed=true]{background:var(--color-ink);color:#fff}.flowmap .stage{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.flowmap .mapbox{border:3px solid var(--color-ink);background-color:var(--color-paper);background-image:radial-gradient(var(--color-paper-dark) 1.5px, transparent 1.5px);background-size:22px 22px;border-radius:8px;height:min(68vh,640px);position:relative;overflow:hidden}.flowmap svg.map{touch-action:none;width:100%;height:100%;display:block}.flowmap .mapctl{gap:8px;display:flex;position:absolute;bottom:10px;right:10px}.flowmap .mapctl .ds-btn{padding:5px 10px;font-size:.7rem}.flowmap .panel{background:var(--color-panel);border:3px solid var(--color-ink);box-shadow:6px 6px 0 0 var(--color-ink);border-radius:8px;gap:14px;padding:20px;display:grid}.flowmap .panel .meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.flowmap .ste{gap:8px;display:grid}.flowmap .ste p.in{animation:.5s cubic-bezier(.16,1,.3,1) backwards flow-rise}@keyframes flow-rise{0%{opacity:0;transform:translateY(6px)}}.flowmap .choices{gap:8px;display:grid}.flowmap .choices .ds-btn{text-transform:none;letter-spacing:0;align-items:baseline;gap:10px;font-size:.875rem;display:flex}.flowmap .choices .key{font-family:var(--font-mono);border:2px solid;border-radius:4px;flex:none;padding:0 5px;font-size:.75rem}.flowmap .nav{border-top:2px solid var(--color-ink);flex-wrap:wrap;gap:8px;padding-top:12px;display:flex}.flowmap .nav .ds-btn{padding:5px 10px;font-size:.7rem}.flowmap .review{border:2px solid var(--color-ink);background:var(--color-paper);border-radius:6px;padding:10px 12px}.flowmap .review ul{margin:6px 0 0;padding-left:18px}.flowmap .crumbs{color:var(--color-charcoal);font-size:.8125rem}.flowmap .legend{flex-wrap:wrap;align-items:center;gap:14px 22px;padding:20px 0 0;font-size:.8125rem;display:flex}.flowmap .legend span{align-items:center;gap:8px;display:inline-flex}.flowmap .sw{border:2px solid var(--color-ink);border-radius:3px;width:22px;height:14px;display:inline-block}.flowmap .node{cursor:pointer}.flowmap .node .box{stroke:var(--color-ink);stroke-width:3px}.flowmap .node .shadow{fill:var(--color-ink);opacity:0;transition:opacity .3s}.flowmap .node.current .shadow{opacity:1}.flowmap .node.visited .box{stroke:var(--color-violet);stroke-width:4px}.flowmap .node.current .box{stroke:var(--color-ink);stroke-width:3px}.flowmap .node.planned .box{stroke-dasharray:8 6}.flowmap .node.next .box{stroke-width:4px}.flowmap .node .k{font:600 11px var(--font-sans);letter-spacing:.08em;text-transform:uppercase}.flowmap .node .t{font:700 17px var(--font-display);letter-spacing:-.01em}.flowmap .node:hover .box{stroke-width:4px}.flowmap .node:focus-visible{outline:none}.flowmap .node:focus-visible .box{stroke-width:5px}.flowmap .edge{fill:none;stroke:var(--color-charcoal);stroke-width:2px}.flowmap .edge.planned{stroke-dasharray:7 6}.flowmap .trace{fill:none;stroke:var(--color-violet);stroke-width:6px;stroke-linecap:round}.flowmap .stagelabel{font:600 12px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;fill:var(--color-ink)}.flowmap .stagenum{font:800 30px var(--font-display);fill:var(--color-ink)}.flowmap .divider{stroke:var(--color-ink);stroke-width:2px;stroke-dasharray:2 8;stroke-linecap:round}.flowmap .rowlabel{font:600 11px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;fill:var(--color-charcoal)}.flowmap .note{font:600 18px var(--font-hand);font-variation-settings:"INFM" 60, "BNCE" 30;fill:var(--color-violet)}.flowmap .spin{fill:none;stroke:var(--color-magenta);stroke-width:3px;stroke-linecap:round;transform-origin:0 0;animation:.9s linear infinite flow-spin}@keyframes flow-spin{to{transform:rotate(360deg)}}@media (width<=1100px){.flowmap .stage{grid-template-columns:1fr}.flowmap .mapbox{height:52vh}}@media (prefers-reduced-motion:reduce){.flowmap .ste p.in,.flowmap .spin{animation:none}.flowmap .ds-btn,.flowmap .node .shadow{transition:none}}.flow-steps .where{flex-wrap:wrap;align-items:center;gap:6px;margin-top:.5rem;display:flex}.flow-steps .kind{text-transform:uppercase;letter-spacing:.08em;color:#3a3a3a;font-size:.7rem;font-weight:600}
