:root{--steel:#dfe3e7;--steel-deep:#b9c1c8;--face:#fbfbfc;--face-inset:#262d34;--ink:#1a2026;--ink-soft:#5c666f;--rule:#c3c9cf;--amber:#b4650a;--live:#16704a;--fault:#a52b21;--gap:1.5rem;--radius:3px}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--steel);color:var(--ink);margin:0;font-family:IBM Plex Sans,ui-sans-serif,system-ui,sans-serif;font-size:16px;line-height:1.5}.mono{font-variant-ligatures:none;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace}.shell{max-width:74rem;margin:0 auto;padding:2rem 1.25rem 3rem}.masthead{border-bottom:2px solid var(--ink);margin-bottom:var(--gap);justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.75rem;display:flex}.masthead-end{align-items:center;gap:1rem;display:flex}.lang{border:1px solid var(--steel-deep);border-radius:var(--radius);display:inline-flex;overflow:hidden}.lang-btn{font:inherit;letter-spacing:.04em;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;margin:0;padding:.3125rem .5625rem;font-size:.75rem;font-weight:600}.lang-btn+.lang-btn{border-left:1px solid var(--steel-deep)}.lang-btn:hover{color:var(--ink);background:#eef1f3}.lang-btn[aria-pressed=true]{background:var(--ink);color:var(--face)}.lang-btn:focus-visible{outline:3px solid var(--amber);outline-offset:2px;z-index:1}.brand{align-items:center;gap:.65rem;display:flex}.brand img{width:2rem;height:2rem;display:block}.masthead h1{letter-spacing:-.01em;margin:0;font-size:1.375rem;font-weight:600}.who{color:var(--ink-soft);margin:0;font-size:.875rem}.bench{gap:var(--gap);grid-template-columns:minmax(0,22rem) minmax(0,1fr);align-items:start;display:grid}@media (max-width:56rem){.bench{grid-template-columns:minmax(0,1fr)}}.readout{background:var(--face-inset);color:#e8ecef;border-radius:var(--radius);padding:1.125rem 1.25rem 1rem;box-shadow:inset 0 2px 6px #00000073}.readout-state{border-bottom:1px solid #ffffff24;align-items:center;gap:.625rem;margin-bottom:.875rem;padding-bottom:.875rem;font-size:1.0625rem;font-weight:500;display:flex}.lamp{background:#7b858e;border-radius:50%;flex:none;width:.75rem;height:.75rem;box-shadow:0 0 0 3px #ffffff0f}.readout[data-state=live] .lamp{background:#35c98a;box-shadow:0 0 0 3px #35c98a38}.readout[data-state=busy] .lamp{background:#f0a83a;box-shadow:0 0 0 3px #f0a83a38}.readout[data-state=fault] .lamp{background:#f0655a;box-shadow:0 0 0 3px #f0655a38}.readout-facts{gap:.4375rem;margin:0;font-size:.875rem;display:grid}.readout-facts>div{justify-content:space-between;gap:1rem;display:flex}.readout-facts dt{color:#97a1aa}.readout-facts dd{text-align:right;overflow-wrap:anywhere;margin:0}.readout-facts dd[data-tone=set]{color:#35c98a}.readout-facts dd[data-tone=blank]{color:#f0a83a}.readout-facts dd[data-tone=clash]{color:#f4695c}.readout-facts.plain{color:var(--ink);border-top:1px solid var(--rule);background:0 0;margin-top:.875rem;padding-top:.875rem}.readout-facts.plain dt{color:var(--ink-soft)}.readout-facts.plain dd[data-tone=clash]{color:var(--fault);font-weight:500}.rail{gap:1.125rem;display:grid}.step{background:var(--face);border:1px solid var(--rule);border-radius:var(--radius);padding:1rem 1.125rem 1.125rem}.step h2{margin:0 0 .375rem;font-size:.9375rem;font-weight:600}.hint{color:var(--ink-soft);overflow-wrap:anywhere;margin:0 0 .75rem;font-size:.8125rem}.hint[data-tone=fault]{color:var(--fault)}.row{flex-wrap:wrap;gap:.5rem;display:flex}.btn{font:inherit;color:var(--face);background:var(--ink);border:1px solid var(--ink);border-radius:var(--radius);cursor:pointer;padding:.5rem .875rem;font-size:.875rem;font-weight:500}.btn:hover:not(:disabled){background:#2b343c}.btn:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.quiet{color:var(--ink);border-color:var(--steel-deep);background:0 0}.btn.quiet:hover:not(:disabled){background:#eef1f3}.btn.small{padding:.3125rem .625rem;font-size:.75rem}.btn.go{background:var(--amber);border-color:var(--amber);width:100%;padding:.9375rem;font-size:1.0625rem;font-weight:600}.btn.go:hover:not(:disabled){background:#9c5808}.btn.stop{width:calc(100% - 2rem);color:var(--fault);border-color:var(--fault);background:0 0;margin:0 1rem .75rem;font-weight:600}.btn.stop:hover:not(:disabled){background:var(--fault);color:var(--face)}.btn.done{background:var(--live);border-color:var(--live);justify-content:center;align-items:center;gap:.5rem;width:calc(100% - 2rem);margin:0 1rem .75rem;padding:.9375rem;font-size:1.0625rem;font-weight:600;display:flex}.btn-icon{fill:currentColor;flex-shrink:0;width:1.25em;height:1.25em}.btn.done:hover:not(:disabled){background:#115a3b}.select{font:inherit;border:1px solid var(--steel-deep);border-radius:var(--radius);width:100%;color:var(--ink);background:#fff;padding:.5rem;font-size:.875rem}.commit{gap:.75rem;display:grid}.progress{border:1px solid var(--steel-deep);border-radius:var(--radius);background:#fff;flex:none;height:1.5rem;margin:0 1rem .75rem;position:relative;overflow:hidden}.steps[hidden]~.progress{margin-top:.75rem}.progress-bar{background:var(--live);width:0;height:100%;transition:width .12s linear}.progress.is-complete .progress-bar{width:100%;transition:none}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-text{mix-blend-mode:difference;color:#fff;place-items:center;font-size:.75rem;font-weight:500;display:grid;position:absolute;inset:0}.logpane{background:var(--face);border:1px solid var(--rule);border-radius:var(--radius);flex-direction:column;display:flex}.logpane[data-activity=expanded]{min-height:28rem;max-height:80vh}.logpane-head{justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem .5rem .5rem;display:flex}.logpane[data-activity=expanded] .logpane-head{border-bottom:1px solid var(--rule);padding:.5rem 1rem .5rem .5rem}.logpane-toggle{border-radius:var(--radius);color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.375rem;margin:0;padding:.25rem .375rem;display:inline-flex}.logpane-toggle:hover{background:#eef1f3}.logpane-toggle:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.logpane-toggle h2{margin:0;font-size:.9375rem;font-weight:600}.logpane-toggle .chevron{flex:none;width:.875rem;height:.875rem;transition:transform .15s}.logpane[data-activity=expanded] .logpane-toggle .chevron{transform:rotate(90deg)}.log{white-space:pre-wrap;overflow-wrap:anywhere;color:#333c44;flex:1;margin:0;padding:.875rem 1rem;font-size:.8125rem;line-height:1.55;overflow:auto}.log .fault{color:var(--fault)}.log .good{color:var(--live)}.steps{border-top:1px solid var(--rule);flex:none;gap:.25rem;margin:0;padding:.75rem 1rem;font-size:.8125rem;list-style:none;display:grid}.steps li{grid-template-columns:1.25rem 1fr auto;align-items:baseline;gap:.5rem;display:grid}.steps-mark{text-align:center;font-weight:600}.steps-time{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem}.steps li[data-status=pending],.steps li[data-status=skipped],.steps li[data-status=pending] .steps-time,.steps li[data-status=skipped] .steps-time{color:#9aa4ad}.steps li[data-status=running]{color:var(--amber);font-weight:500}.steps li[data-status=done] .steps-mark{color:var(--live)}.steps li[data-status=failed]{color:var(--fault);font-weight:500}.steps li[data-status=stopped] .steps-mark{color:var(--amber)}.steps-total{border-top:1px solid var(--rule);margin-top:.25rem;padding-top:.375rem;font-weight:600}.steps-total .steps-time{color:var(--ink);font-weight:600}
