:root,[data-theme=black]{--bg:#0b0c0e;--txt:#e8e6e1;--dim:#8b8d91;--ok:#9e71f2;--deep:#7f4cd4;--warn:#d97757;--edge:#26282c;--node:#8b8d91}[data-theme=grey]{--bg:#1c1e21;--txt:#eceae6;--dim:#9fa3a8;--ok:#a87ef9;--deep:#8a5ce6;--warn:#d97757;--edge:#33363b;--node:#9fa3a8}[data-theme=blue]{--bg:#0f1b30;--txt:#e3e8f0;--dim:#8e9ab0;--ok:#a48cf2;--deep:#8259dd;--warn:#d97757;--edge:#22314d;--node:#8e9ab0}[data-theme=white]{--bg:#ece7db;--txt:#1b1813;--dim:#514c40;--ok:#5b21b6;--deep:#3b0f8f;--warn:#a13c0a;--edge:#d3ccba;--node:#514c40}[data-theme=white] .p{font-weight:700}[data-theme=white] h1{color:var(--deep)}[data-theme=white] .role{font-weight:800}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--txt);font-family:JetBrains Mono,Menlo,Consolas,monospace;font-size:14px;line-height:1.75;transition:background .25s ease,color .25s ease;overflow-wrap:break-word}.wrap{max-width:860px;margin:0 auto;padding:48px 24px 90px}.ln{display:block}.p{color:var(--ok)}.c{color:var(--dim)}h1{font-size:clamp(30px,5.5vw,54px);font-weight:800;line-height:1.05;margin:10px 0 4px;letter-spacing:-.02em}h2{font-size:clamp(22px,3.6vw,32px);font-weight:800;letter-spacing:-.01em;margin:8px 0 4px}.role{color:var(--ok);font-weight:700;font-size:clamp(16px,2.4vw,22px);margin-bottom:26px}.blk{margin:36px 0}.reveal{opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}.reveal.on{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.reveal{transition:none}}nav.paths{margin:20px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px}nav.paths a{color:var(--txt);text-decoration:none;border-bottom:1px solid var(--dim);font-size:13px}nav.paths a:hover{color:var(--ok);border-color:var(--ok)}nav.paths a.here{color:var(--ok);border-color:var(--ok);font-weight:700}table.status{border-collapse:collapse;margin-top:6px;width:100%}table.status td{padding:3px 18px 3px 0;font-size:13px;vertical-align:top}table.status td.s{white-space:nowrap}.g{color:var(--ok)}.y{color:var(--warn)}.proj{margin:14px 0;padding-left:18px;border-left:2px solid var(--edge)}.proj b{font-weight:700}.proj span{display:block;color:var(--dim);font-size:13px;max-width:68ch}.cursor{display:inline-block;width:9px;height:17px;background:var(--deep);vertical-align:text-bottom;animation:bl 1.05s steps(1) infinite}@keyframes bl{50%{opacity:0}}.topo{border:1px solid var(--edge);margin-top:10px;max-width:640px}.topo svg{display:block;width:100%;height:auto}.topo .topo-port{display:none}.tl{font-size:11px;fill:var(--node);font-family:JetBrains Mono,monospace}.tl.big{font-size:14px}.tl.core{fill:var(--ok);font-weight:700}.tedge{stroke:var(--edge);stroke-width:1.2}.tnode{fill:var(--node)}.tcore{fill:var(--deep)}.pulse{fill:none;stroke:var(--deep);opacity:.5}.opt{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.opt:hover{color:var(--ok)}.opt.cur{color:var(--ok);font-weight:700}.hint{color:var(--dim);font-size:12px}.prose{max-width:70ch}.prose p{margin:0 0 16px;color:var(--txt);font-size:14px}.prose p .k{color:var(--ok);font-weight:700}a.mail{color:var(--ok)}.ticket{max-width:560px;border:1px solid var(--edge);padding:22px;margin-top:12px}.ticket label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:16px 0 6px}.ticket label:first-child{margin-top:0}.ticket input,.ticket textarea{width:100%;background:var(--bg);border:1px solid var(--edge);color:var(--txt);font-family:inherit;font-size:14px;padding:10px 12px;outline:none}.ticket input:focus,.ticket textarea:focus{border-color:var(--ok)}.ticket textarea{min-height:130px;resize:vertical}.ticket button{margin-top:20px;background:var(--deep);color:#fff;border:0;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.08em;padding:12px 24px}.ticket button:hover{background:var(--ok);color:var(--bg)}[data-theme=white] .ticket button{color:#fff}footer.prompt{margin-top:48px}@media(max-width:560px){.wrap{padding:28px 18px 70px}.blk{margin:30px 0}.topo .topo-land{display:none}.topo .topo-port{display:block}.ticket{padding:16px}}@media(max-width:480px){table.status td{display:block;padding:2px 0}table.status tr{display:block;margin-bottom:8px}}@media(orientation:landscape)and (max-height:500px){.wrap{padding:20px 24px 48px}.blk{margin:22px 0}h1{font-size:clamp(26px,4.5vw,40px)}}@media(pointer:coarse){nav.paths a{padding:6px 2px}.opt{display:inline-block;padding:6px 8px}.ticket input,.ticket textarea{font-size:16px}}
