:root{color-scheme:dark;--bg:#0f1115;--fg:#e6e8ee;--mut:#8b93a5;--line:#262a33;--card:#161920;--link:#8ab4ff}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 -apple-system,Segoe UI,Roboto,Arial,sans-serif}#app{max-width:1100px;margin:0 auto;padding:24px}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;margin:8px 0 12px}h2{font-size:15px;margin:22px 0 6px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}.sub,.muted{color:var(--mut)}.crumb{color:var(--mut);margin:0}.err{color:#ff8a8a}table{border-collapse:collapse;width:100%}td{padding:5px 8px;border-top:1px solid var(--line);vertical-align:top}td:first-child{white-space:nowrap}.roots li{margin:6px 0}.roots .muted{margin-left:8px;font-size:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:10px 0 16px;display:grid;gap:6px}.card b{display:inline-block;min-width:70px;color:var(--mut);font-weight:600}code{background:#1d2129;padding:1px 5px;border-radius:4px;font-size:12.5px}pre{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;overflow:auto;font-size:12.5px}button{background:#2b3a5c;color:#fff;border:0;border-radius:6px;padding:3px 10px;margin-left:8px;cursor:pointer;font-size:12.5px}button:hover{background:#3b56d4}details{margin:10px 0}summary{cursor:pointer;color:var(--mut)}.tree dl{margin:0 0 0 14px;border-left:1px solid var(--line);padding-left:10px}.tree dt{color:var(--link);font-weight:600;margin-top:4px}.tree dd{margin:0 0 2px 10px}.tree ul,.tree ol{margin:2px 0 2px 16px;padding:0}.badge{display:inline-block;font-size:11.5px;padding:1px 8px;border-radius:999px;background:#2a2e38;color:var(--fg);vertical-align:middle}.b-fresh{background:#1f5d3a}.b-stale{background:#7a3a1e}.b-unknown{background:#5a4a1e}.b-authored{background:#2a3f5f}.b-unchecked{background:#444}.b-error{background:#7a1e1e}.b-kind{background:#3b3f4a}.tally .badge{margin-right:6px}.new{margin:8px 0 4px}.new summary{color:var(--link)}.new form{grid-template-columns:1fr}.new label{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:8px;color:var(--mut);font-size:13px}.new input,.new select{background:#1d2129;color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:13px}.new button{margin-left:0}.top{display:flex;gap:14px;align-items:center;max-width:1100px;margin:0 auto;padding:12px 24px 0;font-size:13px}.top .brand{font-weight:700;color:var(--fg)}.top .grow{flex:1}.form{max-width:420px}.form label{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:8px;color:var(--mut);font-size:13px}.form input{background:#1d2129;color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-size:13px}.form button{margin-left:0}.btn{display:inline-block;background:#2b3a5c;color:#fff;padding:6px 14px;border-radius:6px}.btn:hover{background:#3b56d4;text-decoration:none}button.ghost{background:transparent;border:1px solid var(--line);color:var(--mut)}button.ghost:hover{background:#2a2e38}h2.idx{text-transform:none;letter-spacing:0;font-size:18px;color:var(--fg);margin-top:14px}.progress{margin:14px 0;color:var(--mut);font-size:13px}.spin{display:inline-block;width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--link);border-radius:50%;vertical-align:-2px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pbar{height:3px;background:var(--line);border-radius:2px;margin-top:6px;max-width:420px}.pbar div{height:100%;width:0;background:var(--link);border-radius:2px;transition:width .15s}#layout{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:1fr;position:relative}#layout.has-side{grid-template-columns:220px 1fr}#app{padding:12px 24px 40px;min-width:0}#side{display:none;padding:12px 8px 24px 24px;position:sticky;top:0;align-self:start;max-height:100vh;overflow:auto}#layout.has-side #side{display:block}.menu{display:none;position:absolute;left:12px;top:10px;background:transparent;border:1px solid var(--line);color:var(--mut);border-radius:6px;padding:4px 6px;margin:0;z-index:3}@media(max-width:800px){#layout.has-side{grid-template-columns:1fr}#layout.has-side .menu{display:inline-block}#layout.has-side #app{padding-top:44px}#layout.has-side #side{display:none;position:fixed;left:0;top:0;bottom:0;width:240px;background:var(--card);border-right:1px solid var(--line);padding:44px 8px 24px 12px;z-index:2;box-shadow:4px 0 24px #0006}#layout.has-side.side-open #side{display:block}}.ic{vertical-align:-3px}.side-head,.side-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;color:var(--fg);font-size:13px;text-decoration:none}.side-head{font-weight:700;margin-bottom:4px}.side-row:hover,.side-head:hover{background:#1b1f27;text-decoration:none}.side-row.on,.side-head.on{background:#1f2637}.side-row.missing{color:var(--mut)}.side-row .ic{color:var(--mut);flex:none}.side-row.on .ic{color:var(--link)}.side-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-n{font-size:11px;color:var(--mut)}.side-add{color:var(--mut);display:inline-flex}.side-tally{padding:2px 8px 10px}.side-tally .badge{margin-right:4px;font-size:10.5px;padding:0 6px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}.dot-stale{background:#e0803a}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin:14px 0 6px}.tile{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 16px 12px;color:var(--fg);text-decoration:none;min-height:132px;transition:border-color .12s,transform .12s}.tile:hover{border-color:#3b56d4;text-decoration:none;transform:translateY(-1px)}.tile.small{min-height:0;padding:12px 14px}.tile.add{border-style:dashed;color:var(--mut)}.tile.add:hover{color:var(--fg)}.tile-ic{color:var(--link)}.tile.add .tile-ic{color:var(--mut)}.tile-name{font-weight:700;font-size:15px;text-transform:capitalize}.tile-name .muted{font-weight:400;font-size:13px;text-transform:none}.tile-sub{color:var(--mut);font-size:12.5px;line-height:1.4;flex:1}.tile-foot{font-size:12px;display:flex;align-items:center;gap:8px}.map{position:relative}.map-head{display:flex;align-items:center;gap:12px;font-size:12.5px;margin:6px 0 4px}.map-head .grow{flex:1}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:12px}.seg b,.seg a{padding:4px 12px;color:var(--mut);font-weight:400}.seg .on{background:#1f2637;color:var(--fg)}.seg a:hover{text-decoration:none;color:var(--fg)}.site{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto;gap:14px 20px;padding:14px 8px 8px;background-image:linear-gradient(#171b23 1px,transparent 1px),linear-gradient(90deg,#171b23 1px,transparent 1px);background-size:48px 48px;border-radius:14px}.wires{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.wire{fill:none;stroke:#4a5266;stroke-width:1.2;stroke-dasharray:3 5}.wire.lit{stroke:#3fd6a3;stroke-width:1.6;stroke-dasharray:6 6;filter:drop-shadow(0 0 4px rgba(63,214,163,.8))}.area{position:relative;z-index:1;min-height:220px;border-radius:14px;color:var(--fg);cursor:pointer;outline:none}.area:hover,.area:focus-visible{z-index:3}.face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px}.face.front{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px 12px;min-height:inherit;box-sizing:border-box}.face.back{opacity:0;pointer-events:none;transition:opacity .5s ease-out;display:grid;align-content:center;gap:4px;padding:16px 18px;box-sizing:border-box;background:#14171ed1;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border:1px solid #2e3441;box-shadow:0 18px 44px #0009,0 0 0 1px #8ab4ff1f}.face.back:before{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent)}.area:hover .face.back,.area:focus-visible .face.back{opacity:1;pointer-events:auto;transition:opacity .5s linear}.face.front{transition:opacity .5s ease-out,filter .5s ease-out}.area:hover .face.front,.area:focus-visible .face.front{transition:opacity .5s linear,filter .5s linear}.area:hover .face.front,.area:focus-visible .face.front{opacity:.12;filter:blur(1px)}.art-obj,.sk svg,.art-worker{transition:filter .35s ease}.area:hover .art-obj,.area:hover .sk svg,.area:hover .art-worker{filter:brightness(1.3) sepia(1) saturate(6) hue-rotate(140deg) drop-shadow(0 0 8px rgba(63,214,214,.6))}.face.back h3{margin:0;font-size:16px}.face.back p{margin:0;font-size:13px}.face.back .small{font-size:12px}.panel-kind{font-size:11.5px;color:var(--mut);display:flex;align-items:center;gap:4px}.panel-btns{margin-top:6px;display:flex;gap:8px}.face.back>*{opacity:0;transform:translateY(8px);transition:opacity .5s ease-out,transform .5s ease-out}.area:hover .face.back>*,.area:focus-visible .face.back>*{opacity:1;transform:none;transition:opacity .3s ease-out,transform .35s cubic-bezier(.2,.8,.2,1)}.area:hover .face.back>:nth-child(1){transition-delay:.1s}.area:hover .face.back>:nth-child(2){transition-delay:.16s}.area:hover .face.back>:nth-child(3){transition-delay:.22s}.area:hover .face.back>:nth-child(4){transition-delay:.28s}.area:hover .face.back>:nth-child(5){transition-delay:.33s}.area:hover .face.back>:nth-child(6){transition-delay:.38s}@media(hover:none){.face.back{display:none}.area:hover .face.front{opacity:1;filter:none}}.area.missing .face.front{opacity:.55}.area.now .face.front{box-shadow:inset 0 0 0 1px #3fd6a373}.a-blueprint{grid-column:1;grid-row:1}.a-start{grid-column:2;grid-row:1}.a-rules{grid-column:3;grid-row:1}.a-roadmap{grid-column:1;grid-row:2}.a-history{grid-column:2;grid-row:2}.a-rooms{grid-column:3;grid-row:2}.centre .area-label b{font-size:16px}.pills{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:2px}.pill{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--fg);font-size:12px}.pill:hover{text-decoration:none;border-color:var(--link)}.area-n{position:absolute;left:10px;top:10px;width:20px;height:20px;border-radius:50%;border:1px solid #3a4050;color:var(--mut);font-size:11px;display:flex;align-items:center;justify-content:center}.area-n.inline{position:static;display:inline-flex;vertical-align:middle;margin:0 2px}.area-tag{position:absolute;right:10px;top:8px;font-size:11px;color:#3fd6a3;border:1px solid #3fd6a3;border-radius:999px;padding:1px 8px}.art{position:relative;height:clamp(150px,15vw,240px);width:100%;display:flex;align-items:flex-end;justify-content:center}.art-obj{max-height:100%;max-width:90%;object-fit:contain;filter:drop-shadow(0 0 2px rgba(201,214,234,.25))}.art-worker{position:absolute;right:2%;bottom:-6px;height:70%;opacity:.9}.sk{height:120px;width:100%;display:flex;align-items:flex-end;justify-content:center}.sk svg{height:110px;max-width:90%;fill:none;stroke:#c9d6ea;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.sk .soft{stroke:#5b6579;stroke-dasharray:3 4}.sk .warn{stroke:#e0803a;stroke-width:2}.sk .done{fill:#c9d6ea}.sk .now{fill:#3fd6a3;stroke:#3fd6a3;filter:drop-shadow(0 0 4px rgba(63,214,163,.8))}.area-label{text-align:center;font-size:14px}.area-label i{font-style:italic;color:var(--mut);font-size:11.5px;margin-left:4px}.area-add{display:inline-flex;align-items:center;gap:3px;margin-left:8px;font-size:11.5px;color:var(--mut)}@media(max-width:800px){.site{grid-template-columns:1fr;grid-template-rows:none}.a-start,.a-blueprint,.a-rules,.a-roadmap,.a-history,.a-rooms{grid-column:1;grid-row:auto}.a-start{order:1}.a-blueprint{order:2}.a-rules{order:3}.a-roadmap{order:4}.a-history{order:5}.a-rooms{order:6}.wires,.art-worker{display:none}}.a-roadmap .art{height:clamp(190px,19vw,300px)}.a-roadmap .art-obj{max-height:100%;max-width:72%}.a-start .art-obj,.a-history .art-obj,.a-rules .art-obj{max-width:82%}.centre .art{height:clamp(220px,22vw,340px)}.centre .art-obj{max-height:100%;max-width:98%}.centre{min-height:320px}.wire.lit{animation:flow 1.6s linear infinite}@keyframes flow{to{stroke-dashoffset:-24}}.area-tag{animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{0%,to{box-shadow:0 0 #3fd6a300}50%{box-shadow:0 0 0 5px #3fd6a31f}}.area.now .face.front{animation:nowglow 2.4s ease-in-out infinite}@keyframes nowglow{0%,to{box-shadow:inset 0 0 0 1px #3fd6a359}50%{box-shadow:inset 0 0 0 1px #3fd6a3b3,0 0 18px #3fd6a31f}}.face.front{animation:rise .5s cubic-bezier(.2,.8,.2,1) backwards}.a-start .face.front{animation-delay:0s}.a-blueprint .face.front{animation-delay:.06s}.a-rules .face.front{animation-delay:.12s}.a-roadmap .face.front{animation-delay:.18s}.a-history .face.front{animation-delay:.24s}.a-rooms .face.front{animation-delay:.3s}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.face.front,.wire.lit,.area-tag,.area.now{animation:none}.face.front,.face.back,.face.back>*{transition:none}}.adopt{margin:8px 0 14px;line-height:1.6;max-width:720px}.pill.stale{background:#e0803a26;border-color:#e0803a66}.face.front .pills{margin-top:2px}.guide{display:flex;align-items:center;gap:12px;margin:6px 0 10px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:12.5px;color:var(--mut)}.guide.warn{border-color:#e0803a80}.guide span{flex:1}.guide .ic{vertical-align:-2px;margin-right:4px;color:var(--link)}.guide-act{margin:0;white-space:nowrap}.connect{display:flex;gap:18px;align-items:flex-start;margin:6px 0 14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.connect.ok{display:block;padding:6px 12px;font-size:12.5px}.connect.ok .conn{margin-left:8px}.connect-art{flex:none;width:420px;max-width:100%}.connect-art svg{width:100%;height:auto;display:block}.connect-body h3{margin:0 0 2px;font-size:15px}.connect-body p{margin:0 0 8px;font-size:12.5px}.steps{margin:0;padding-left:22px;display:grid;gap:8px;font-size:13px}.steps li{color:var(--mut)}.steps li b{color:var(--fg);margin-right:6px}.steps li .muted{font-size:12px}.steps li.is-now{color:var(--fg)}.steps li.is-now::marker{color:#3fd6a3;font-weight:700}.steps li.is-done::marker{color:#3fd6a3}.steps .done{color:#3fd6a3;font-size:12px;margin-left:6px}.steps .guide-act{margin-left:8px}.prompt{display:inline-block;margin:4px 6px 0 0;padding:4px 8px;background:#1d2129;border:1px solid var(--line);border-radius:6px;font-size:12.5px;color:var(--fg);-webkit-user-select:all;user-select:all}.guide-copy{margin:0}.conns{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.conn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12px;color:var(--fg)}.conn i{font-style:normal;color:var(--mut)}.conn.verified{border-color:#3fd6a380}.conn.missing{border-color:#e0803a99}@media(max-width:800px){.connect{flex-direction:column}.connect-art{width:100%}}.waiting{margin-top:6px;font-size:12px;color:var(--mut);display:flex;align-items:center;gap:8px}
