:root{color-scheme:dark;--bg:#030303;--panel:#080808;--line:rgba(255,255,255,.18);--line-hot:rgba(255,255,255,.72);--white:#f5f5f2;--body:#b8b8b3;--muted:#747470;--accent:#f79520;--accent-deep:#2e368f}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--white);font-family:Inter,Arial,sans-serif}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(circle at 50% 45%,#000,transparent 75%)}
#space{position:fixed;inset:0;width:100%;height:100%;opacity:.85}.tools-hud{position:fixed;z-index:5;left:0;right:0;top:0;display:flex;align-items:flex-start;justify-content:space-between;padding:24px 28px;pointer-events:none}.brand,.return-link{pointer-events:auto;color:var(--white);text-decoration:none}.brand strong{display:block;font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:19px}.brand span,.return-link{display:block;margin-top:4px;color:var(--muted);font-size:10px;letter-spacing:.24em;text-transform:uppercase}.return-link{border:1px solid var(--line);border-radius:999px;padding:10px 14px;transition:border-color .2s,color .2s}.return-link:hover{border-color:var(--line-hot);color:var(--white)}main{display:grid;grid-template-columns:minmax(0,1fr) 0;height:100%;transition:grid-template-columns .45s cubic-bezier(.2,.8,.2,1)}body.panel-open main{grid-template-columns:minmax(0,1fr) min(430px,42vw)}.universe{position:relative;min-width:0;height:100%;overflow:hidden}.universe-copy{position:absolute;z-index:2;left:4vw;top:15vh;max-width:370px}.universe-copy p,#tool-kicker{font-size:9px;letter-spacing:.28em;color:var(--muted)}.universe-copy h1{margin:.3rem 0 .6rem;font:italic 34px 'Fraunces',Georgia,serif}.universe-copy span{color:var(--body);font-size:13px;line-height:1.6}#tool-map{position:absolute;inset:8% 2% 2%;width:96%;height:90%;overflow:visible}.edges line{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke;transition:stroke .25s}.tool-node{cursor:pointer;outline:none}.tool-node .orbit{fill:none;stroke:rgba(255,255,255,.22);stroke-width:1;vector-effect:non-scaling-stroke}.tool-node .node-core{fill:#050505;stroke:rgba(255,255,255,.7);stroke-width:2;vector-effect:non-scaling-stroke}.tool-node text{fill:#c8c8c4;text-anchor:middle;font-size:12px;font-weight:700;letter-spacing:1.5px}.tool-node .node-status{fill:#666;font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:500;letter-spacing:1.8px}.tool-node.status-live .node-status{fill:var(--accent)}.tool-node:hover .orbit,.tool-node:focus .orbit,.tool-node.active .orbit{stroke:var(--line-hot)}.tool-node:hover .node-core,.tool-node:focus .node-core,.tool-node.active .node-core{fill:var(--white);stroke:var(--white)}.tool-node:hover text,.tool-node:focus text,.tool-node.active text{fill:var(--white)}.tool-node.status-live .node-core{stroke:var(--white)}.tool-node.status-concept{opacity:.62}.orbit-outer{stroke-dasharray:2 6!important}.tool-node.folder .folder-plus{fill:#999;text-anchor:middle;font-size:15px;font-weight:400;pointer-events:none;transition:transform .35s cubic-bezier(.2,.8,.2,1),fill .25s;transform-origin:center;transform-box:fill-box}.tool-node.folder:hover .folder-plus,.tool-node.folder:focus .folder-plus,.tool-node.folder.open .folder-plus{fill:#fff}.tool-node.folder.open .folder-plus{transform:rotate(45deg)}.tool-node.folder.open .orbit,.tool-node.folder.open .node-core{stroke:var(--line-hot)}.tool-node.child .child-inner{opacity:0;transform:scale(.15);transform-origin:center;transform-box:fill-box;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s}.tool-node.child .child-inner.in{opacity:1;transform:scale(1)}.tool-node.child .orbit{r:22}.tool-node.child .node-core{r:9}.tool-node.child text{font-size:9px;letter-spacing:1px}.tool-node.child .node-status{font-size:7px}.folder-edges line{stroke-dasharray:2 4;opacity:0;transition:opacity .3s}.folder-edges line.in{opacity:1}.placeholder-note{margin-top:14px;color:#666;font-size:11px;font-style:italic}.map-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:#555;font-size:9px;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap}#tool-panel{position:relative;z-index:4;height:100%;overflow:auto;border-left:1px solid var(--line);background:rgba(5,5,5,.96);padding:clamp(70px,10vh,110px) clamp(28px,4vw,60px) 48px;transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}body.panel-open #tool-panel{transform:none}#close-panel{position:absolute;right:22px;top:20px;border:0;background:none;color:#777;font-size:29px;cursor:pointer}#close-panel:hover{color:#fff}#tool-title{margin:9px 0 14px;font:46px/1 'Fraunces',Georgia,serif;letter-spacing:-.035em}.state{display:inline-block;margin:0 0 28px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:#aaa;font-size:9px;letter-spacing:.2em}.lede{font:20px/1.5 'Fraunces',Georgia,serif;color:#e5e5e0}#tool-body{margin-top:30px;padding-top:25px;border-top:1px solid var(--line);color:var(--body);font-size:14px;line-height:1.7}#tool-body h3{margin:24px 0 7px;color:#fff;font-size:10px;letter-spacing:.2em;text-transform:uppercase}#tool-body ul{padding-left:18px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:35px}.actions a{border:1px solid var(--line);border-radius:2px;padding:12px 15px;color:#fff;text-decoration:none;font-size:10px;letter-spacing:.14em;text-transform:uppercase}.actions a.primary{background:var(--white);color:#050505;border-color:var(--white)}
@media(max-width:800px){.tools-hud{padding:18px}.return-link{font-size:8px}.universe-copy{left:22px;top:100px;max-width:280px}.universe-copy h1{font-size:27px}#tool-map{inset:17% -18% 2%;width:136%;height:81%}.tool-node text{font-size:10px}body.panel-open main{display:block}.panel-open .universe{display:none}#tool-panel{position:absolute;inset:0;width:100%;transform:translateX(100%);padding:82px 24px 45px}.panel-open #tool-panel{transform:none}#tool-title{font-size:39px}.map-hint{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
