.spx{--ink:hsl(var(--foreground));--ink-2:hsl(var(--foreground)/0.78);--muted:hsl(var(--muted-foreground));--rule:hsl(var(--border));--paper:hsl(var(--background));--sheet:hsl(var(--card));--blue:hsl(var(--primary));--on-blue:hsl(var(--primary-foreground));--mist:hsl(var(--accent));--e-in:cubic-bezier(.22,.8,.24,1);--serif:var(--font-serif),Georgia,serif;--sans:var(--font-sans),system-ui,sans-serif;--mono:var(--font-mono),ui-monospace,monospace;margin:0;min-width:0;color:var(--ink)}.spx *,.spx :after,.spx :before{box-sizing:border-box}.spx blockquote,.spx figure,.spx h3,.spx h4,.spx ol,.spx p,.spx ul{margin:0}.spx a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;text-decoration-color:hsl(var(--primary)/.35)}.spx a:hover{text-decoration-color:var(--blue)}.spx :focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}.spx-head{max-width:48rem}.spx-label{font:500 11px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.spx-title{font:600 1.6rem/1.2 var(--serif)}.spx-intro,.spx-title{margin-top:8px!important}.spx-intro{font:400 16px/1.6 var(--sans);color:var(--ink-2)}.spx-card{margin-top:20px;display:grid;gap:0;border:1px solid var(--rule);border-radius:8px;background:var(--sheet);box-shadow:0 1px 2px 0 rgb(0 0 0/.05)}.spx-stage{padding:0 16px 12px;border-bottom:1px solid var(--rule);min-width:0}.spx-ctl{visibility:hidden}.spx[data-js] .spx-ctl{visibility:visible}.spx-rail{display:flex;align-items:center;justify-content:space-between;gap:10px;height:48px}.spx-count{font:500 12px/1 var(--mono);letter-spacing:.06em;color:var(--muted)}.spx-play{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 4px 0 8px;border:0;background:none;color:var(--blue);cursor:pointer;font:600 14px/1 var(--sans)}.spx-play:hover .spx-play-text{text-decoration:underline;text-underline-offset:3px}.spx-play-icon{position:relative;width:28px;height:28px;border:1.5px solid var(--blue);border-radius:50%}.spx-play-icon:before{content:"";position:absolute;left:10px;top:8px;border-style:solid;border-width:5.5px 0 5.5px 9px;border-color:transparent transparent transparent var(--blue)}.spx-play[data-mode=auto] .spx-play-icon:before{left:9px;top:8.5px;width:8px;height:10px;border:0;border-left:2.5px solid var(--blue);border-right:2.5px solid var(--blue)}.spx-progress{position:relative;height:2px;background:var(--rule);overflow:hidden}.spx-progress span{position:absolute;inset:0;background:var(--ink);transform-origin:left center;transform:scaleX(0);animation-name:spx-fill;animation-timing-function:linear;animation-fill-mode:both;animation-play-state:paused}.spx-progress span[data-run]{animation-play-state:running}.spx-progress span[data-full]{animation:none;transform:none}@keyframes spx-fill{to{transform:scaleX(1)}}.spx-flow{display:block;width:100%;max-width:420px;height:auto;margin:16px auto 4px;overflow:visible}.spx-node rect{fill:var(--paper);stroke:var(--rule);stroke-width:1;transition:fill .26s var(--e-in),stroke .26s var(--e-in)}.spx-node text{fill:var(--ink);font:500 11px var(--sans);transition:fill .26s var(--e-in)}.spx-edge,.spx-node{transition:opacity .26s var(--e-in)}.spx-edge path{fill:none;stroke:var(--muted);stroke-width:1.25;transition:stroke .26s var(--e-in)}.spx-edge polygon{fill:var(--muted);transition:fill .26s var(--e-in)}.spx-flow[data-live] .spx-edge:not([data-tone]),.spx-flow[data-live] .spx-node:not([data-tone]){opacity:.32}.spx-node[data-tone=on] rect{stroke:var(--blue);stroke-width:1.75}.spx-node[data-tone=alert] rect{fill:var(--ink);stroke:var(--ink)}.spx-node[data-tone=alert] text{fill:var(--paper)}.spx-node[data-tone=safe] rect{fill:var(--mist);stroke:var(--blue);stroke-width:1.75}.spx-node[data-tone=safe] text{fill:var(--blue);font-weight:600}.spx-edge[data-tone=on] path,.spx-edge[data-tone=safe] path{stroke:var(--blue);stroke-width:1.75}.spx-edge[data-tone=on] polygon,.spx-edge[data-tone=safe] polygon{fill:var(--blue)}.spx-edge[data-tone=alert] path{stroke:var(--ink);stroke-width:2;stroke-dasharray:5 4;animation:spx-flow .9s linear infinite}.spx-edge[data-tone=alert] polygon{fill:var(--ink)}.spx-edge[data-tone=blocked] path{stroke:var(--muted);stroke-dasharray:2 4}.spx-edge[data-tone=blocked] polygon{fill:var(--muted);opacity:.5}.spx-gate{stroke:var(--blue);stroke-width:3.5;stroke-linecap:round}@keyframes spx-flow{to{stroke-dashoffset:-9}}.spx-tabs{display:flex;gap:6px;margin-top:10px}.spx-tab{flex:1 1 0;min-width:0;min-height:44px;padding:6px 4px 4px;border:0;border-top:2px solid var(--rule);background:none;color:var(--muted);cursor:pointer;text-align:left;font:500 12px/1.3 var(--sans);transition:border-color .2s var(--e-in),color .2s var(--e-in)}.spx-tab:hover{color:var(--blue)}.spx-tab[aria-pressed=true]{border-top-color:var(--blue);color:var(--ink);font-weight:600}.spx-tab-n{display:block;font:500 11px/1.4 var(--mono);color:var(--blue)}.spx-tab-l{display:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spx-nav{display:flex;justify-content:space-between;margin-top:4px}.spx-nav button{min-height:44px;padding:0 6px;border:0;background:none;cursor:pointer;color:var(--blue);font:600 14px/1 var(--sans)}.spx-nav button:hover:not(:disabled){text-decoration:underline;text-underline-offset:3px}.spx-nav button:disabled{color:var(--muted);opacity:.5;cursor:default}.spx-steps{list-style:none;padding:4px 0;min-width:0}.spx-step{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);gap:0 10px;padding:16px 16px 16px 14px;border-left:2px solid transparent;transition:opacity .26s var(--e-in),border-color .26s var(--e-in),background-color .26s var(--e-in)}.spx-step+.spx-step{border-top:1px solid var(--rule)}.spx[data-js] .spx-step:not([data-on]){opacity:.58}.spx[data-js] .spx-step:not([data-on]):focus-within,.spx[data-js] .spx-step:not([data-on]):hover{opacity:.85}.spx-step[data-on]{border-left-color:var(--blue);background:hsl(var(--accent)/.45)}.spx-num{font:500 12px/1.9 var(--mono);color:var(--blue)}.spx-step-title{font:600 1.15rem/1.3 var(--serif)}.spx-body{margin-top:4px!important;font:400 15px/1.6 var(--sans);color:var(--ink-2)}.spx-exhibit{margin-top:12px!important;padding:10px 12px;border:1px dashed var(--rule);border-radius:6px;background:var(--paper)}.spx-exhibit figcaption{font:500 10.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.spx-exhibit blockquote{margin-top:4px;font:400 13.5px/1.55 var(--mono);color:var(--ink)}.spx-law,.spx-measures>li{display:grid;grid-template-columns:minmax(0,8.5rem) minmax(0,1fr);gap:2px 12px;align-items:baseline}.spx-law{margin-top:12px!important;padding-top:10px;border-top:1px solid var(--rule);font:400 14px/1.5 var(--sans);color:var(--ink-2)}.spx-ref{font:500 12px/1.5 var(--mono)}.spx-measures{margin-top:12px!important;padding:0;list-style:none;border-top:1px solid var(--rule)}.spx-measures>li{padding:10px 0;border-bottom:1px solid var(--rule)}.spx-measures p{font:400 14.5px/1.55 var(--sans)}.spx-measures .spx-hook{margin-top:2px;font-size:13px;color:var(--muted)}.spx-source{margin-top:10px!important}.spx-foot,.spx-source{font:400 13px/1.5 var(--sans);color:var(--muted)}.spx-foot{margin-top:12px}@media (max-width:479px){.spx-law,.spx-measures>li{grid-template-columns:minmax(0,1fr)}.spx-step{grid-template-columns:26px minmax(0,1fr);padding-right:12px}}@media (min-width:560px){.spx-tab-l{display:block}}@media (min-width:960px){.spx-card{grid-template-columns:minmax(0,380px) minmax(0,1fr)}.spx-stage{border-bottom:0;border-right:1px solid var(--rule);padding:0 20px 16px}.spx-stage-inner{position:sticky;top:6rem}.spx-steps{padding:4px 0}}@media (prefers-reduced-motion:reduce){.spx *,.spx :after,.spx :before{transition:none!important;animation:none!important}}