:root{--ink:#16130e;--ink-2:#221c16;--paper:#f3ead8;--paper-dim:#e4d8c0;--rule:#c9b89a;--rust:#b4452a;--sage:#5f7a4a;--gold:#b08948;--mute:#7a6d5b;--npm:#9a6b2f;--ok:#3f6b3a;--danger:#9b2c2c;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif;--sans:"Avenir Next", "Segoe UI", sans-serif;--mono:"IBM Plex Mono", "ui-monospace", Menlo, monospace}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(1200px 600px at 10% -10%, #2a2218 0%, transparent 50%), var(--ink);color:var(--paper);font-family:var(--sans);letter-spacing:.01em}a{color:var(--gold)}button,select,input{font:inherit}.shell{max-width:1280px;margin:0 auto;padding:2.25rem 1.5rem 4rem}.masthead{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.25rem;display:flex}.github-link{color:var(--paper-dim);opacity:.8;border-radius:4px;flex:none;margin-top:.45rem;transition:color .15s,opacity .15s;display:inline-flex}.github-link:hover,.github-link:focus-visible{color:var(--paper);opacity:1}.github-link svg{width:1.5rem;height:1.5rem;display:block}.brand{align-items:flex-start;gap:.85rem;min-width:0;display:flex}.brand-mark{width:2.65rem;height:2.65rem;color:var(--paper);flex:none;margin-top:.22rem}.wordmark{font-family:var(--serif);letter-spacing:-.03em;margin:0;font-size:2.4rem;font-weight:600}.tagline{color:var(--paper-dim);max-width:38rem;margin:.35rem 0 0;line-height:1.45}.demo-banner{border:1px solid var(--gold);color:var(--paper);background:#3a2a16;margin-bottom:1.25rem;padding:.7rem 1rem;font-size:.92rem}.layout{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:1.5rem;display:grid}@media (max-width:960px){.layout{grid-template-columns:1fr}}.panel{background:var(--ink-2);border:1px solid #3a3228;padding:1.1rem 1.15rem 1.3rem}.panel h2{font-family:var(--serif);margin:0 0 .75rem;font-size:1.35rem;font-weight:600}.row{flex-wrap:wrap;gap:.7rem 1rem;margin-bottom:1rem;display:flex}label.field{text-transform:uppercase;letter-spacing:.12em;color:var(--mute);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}select,input[type=text]{color:var(--paper);background:#100e0b;border:1px solid #4a4034;min-width:12rem;padding:.4rem .5rem}.note{color:var(--mute);margin:0 0 1rem;font-size:.88rem;line-height:1.45}.group-title{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:1.1rem 0 .5rem;font-size:.72rem}.tiles{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:.55rem;display:grid}.tile{text-align:left;color:var(--paper);cursor:pointer;background:#1b1712;border:1px solid #3a3228;align-items:flex-start;gap:.55rem;min-height:4.4rem;padding:.55rem;display:flex}.tile.selected{border-color:var(--sage);background:#1e2418}.tile.disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.8)}.tile img{border-radius:6px;flex:none;width:28px;height:28px;display:block}.tile .name{font-size:.92rem;display:block}.tile .cap{color:var(--mute);margin-top:.15rem;font-size:.72rem;line-height:1.25;display:block}.services{gap:1rem;margin:.4rem 0 1rem;display:flex}.graph{font-family:var(--mono);font-size:.82rem}.g-node{border-bottom:1px solid #2c261f;grid-template-columns:24px 1fr;gap:.55rem;padding:.55rem 0;display:grid}.g-node img{border-radius:5px;width:24px;height:24px;display:block}.badge{margin-right:.4rem;font-size:.72rem;display:inline-block}.badge.ok{color:#8fbf7a}.badge.npm{color:#e0b36a}.badge.wait{color:var(--mute)}.actions{flex-direction:column;gap:.6rem;margin-top:1rem;display:flex}button.primary{background:var(--paper);color:var(--ink);cursor:pointer;border:0;padding:.7rem 1rem;font-weight:650}button.primary:disabled{opacity:.45;cursor:not-allowed}button.linkish{color:var(--gold);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.stepper{flex-wrap:wrap;gap:.35rem;margin:.8rem 0;display:flex}.step{letter-spacing:.08em;text-transform:uppercase;color:var(--mute);border:1px solid #3a3228;padding:.25rem .45rem;font-size:.68rem}.step.active{border-color:var(--gold);color:var(--paper)}.step.done{border-color:var(--sage);color:#8fbf7a}.step.fail{border-color:var(--danger);color:#f0a8a8}.step.warn{border-color:var(--gold);color:var(--gold)}.keybox{border:1px solid var(--gold);margin:.8rem 0;padding:.8rem;font-size:.88rem}.keybox code{font-family:var(--mono);word-break:break-all;font-size:.78rem}.fixture{border-top:1px solid var(--rule);margin-top:2rem;padding-top:1.2rem}pre.readme{white-space:pre-wrap;background:#100e0b;max-height:28rem;padding:1rem;font-size:.8rem;line-height:1.45;overflow:auto}.modal-backdrop{z-index:50;background:#080604b8;justify-content:center;align-items:flex-start;padding:8vh 1.25rem 2rem;display:flex;position:fixed;inset:0;overflow:auto}.modal{background:var(--ink-2);border:1px solid var(--rule);width:min(44rem,100%);margin-bottom:2rem;padding:1.15rem 1.2rem 1.4rem}.modal-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}.modal-head h2{font-family:var(--serif);margin:0;font-size:1.35rem;font-weight:600}.modal-sub{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:1.1rem 0 .45rem;font-size:.72rem}.modal pre.readme{max-height:22rem}
