:root{--bg-0:#080808;--bg-1:#0a0a0f;--bg-2:#0c0c12;--ink-main:#d8e2ef;--ink-soft:#8fa0b8;--ink-faint:#7a8fbc;--line-subtle:#ffffff24;--glass-1:#08080ccc;--glass-2:#0a0a10e0;--panel-bg:#f2f6fcf5;--panel-ink:#334155;--panel-soft:#64748b;--panel-faint:#94a3b8;--accent:var(--nodus-accent);--radius-sm:var(--nodus-radius-sm);--radius-md:var(--nodus-radius-md);--radius-lg:var(--nodus-radius-lg);--shadow-soft:var(--nodus-shadow-soft);--shadow-strong:var(--nodus-shadow-strong);--ease-ui:var(--nodus-ease-ui);--panel-desktop-width:332px}@keyframes frontier-glow{0%,to{opacity:.7}50%{opacity:1}}@keyframes node-enter{0%{transform:scale(.3)}to{transform:scale(1)}}@keyframes nodusFlow{0%{stroke-dashoffset:360px}to{stroke-dashoffset:-360px}}@keyframes nodusFlowGold{0%{stroke-dashoffset:380px}to{stroke-dashoffset:-380px}}@keyframes nodusSelHalo{0%,to{opacity:.6}50%{opacity:1}}@keyframes nodusTwinkle{0%,to{opacity:.85}50%{opacity:1}}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes search-pulse{0%{box-shadow:var(--shadow-soft)}30%{box-shadow:0 0 0 4px #f0c0502e, var(--shadow-soft)}to{box-shadow:var(--shadow-soft)}}@keyframes simPulse{0%,to{opacity:.3}50%{opacity:1}}@keyframes topChromeHintPulse{0%,to{box-shadow:0 0 #f0c0501f}50%{box-shadow:0 0 0 6px #f0c0500f}}*{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}body{background:radial-gradient(900px 700px at 20% 15%, #3c287814, transparent 70%), radial-gradient(700px 600px at 80% 75%, #1e32640f, transparent 70%), radial-gradient(500px 400px at 60% 30%, #501e640d, transparent 65%), radial-gradient(600px 500px at 35% 80%, #14285a0f, transparent 68%), linear-gradient(160deg, var(--bg-0), var(--bg-1) 50%, var(--bg-2));color:var(--ink-main);letter-spacing:.01em;width:100vw;height:100vh;font-family:IBM Plex Sans,sans-serif;overflow:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(#0000 40%,#0009 100%);position:fixed;inset:0}#bgCanvas{z-index:0;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:0;background:linear-gradient(#0000 50%,#00000059 100%);position:fixed;inset:0}#canvas{cursor:grab;z-index:1;touch-action:none;width:100vw;height:100vh;position:relative}#canvas>g{will-change:transform}#canvas:active{cursor:grabbing}.skip-link{z-index:30;color:#0f172a;background:#e2e8f0;border:1px solid #94a3b8;border-radius:8px;padding:8px 12px;font-family:IBM Plex Mono,monospace;font-size:11px;text-decoration:none;position:fixed;top:8px;left:8px;transform:translateY(-120%)}.skip-link:focus{transform:translateY(0)}#panel{background:var(--panel-bg);width:332px;height:100vh;box-shadow:var(--shadow-strong);transition:transform .35s var(--ease-ui);z-index:11;color:var(--panel-ink);scrollbar-width:thin;scrollbar-color:#94a3b82e transparent;border-left:1px solid #94a3b840;padding:24px 20px 20px;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%)}#panel.open{transform:translate(0)}#close{width:44px;height:44px;color:var(--panel-soft);cursor:pointer;background:#94a3b824;border:1px solid #94a3b838;border-radius:999px;padding:0;font-size:18px;transition:all .2s;position:absolute;top:12px;right:12px}#close:hover{color:var(--panel-ink);background:#94a3b833}#p-type{letter-spacing:1.6px;text-transform:uppercase;opacity:.9;margin-bottom:6px;font-family:IBM Plex Mono,monospace;font-size:11px}#p-label{letter-spacing:-.02em;color:#3e4f65;margin-bottom:8px;font-size:32px;font-weight:400;line-height:1.16}#p-domains{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}#panel::-webkit-scrollbar{width:3px}#panel::-webkit-scrollbar-track{background:0 0}#panel::-webkit-scrollbar-thumb{background:#94a3b82e;border-radius:2px}#p-desc{color:var(--panel-soft);margin-bottom:16px;font-size:12px;line-height:1.72}#p-tags{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.tag{color:var(--panel-soft);background:#94a3b814;border:1px solid #94a3b833;border-radius:999px;padding:5px 12px;font-family:IBM Plex Mono,monospace;font-size:10px}#p-era{color:var(--panel-faint);margin-bottom:12px;font-family:IBM Plex Mono,monospace;font-size:11px}#p-search{color:#475569;cursor:pointer;text-align:center;border-radius:var(--radius-md);background:#94a3b814;border:1px solid #94a3b840;width:100%;margin-bottom:14px;padding:12px 14px;font-family:IBM Plex Mono,monospace;font-size:11px;text-decoration:none;transition:all .2s;display:block}#p-search:hover{background:#94a3b829}#p-lp-action{color:#8a5e12;letter-spacing:.6px;cursor:pointer;text-align:center;border-radius:var(--radius-md);background:#f0c0501f;border:1px solid #f0c05073;width:100%;min-height:48px;margin-bottom:12px;padding:12px 16px;font-family:IBM Plex Mono,monospace;font-size:12px;transition:all .2s;display:block}#p-lp-action:hover{background:#f0c05033}#p-lp-action.is-learned{color:#2f7a4f;background:#4ade8029;border-color:#4ade8080}#p-next-step{border-radius:var(--radius-md);color:#5f7086;background:#94a3b814;border:1px solid #94a3b833;margin-bottom:14px;padding:10px 12px;font-size:11px;line-height:1.4}#p-next-step .next-link{color:#465b74;cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}#p-conns h3{letter-spacing:1.5px;color:#8fa0b8;text-transform:uppercase;margin-top:4px;margin-bottom:8px;font-family:IBM Plex Mono,monospace;font-size:10px}.ci{border-radius:var(--radius-md);cursor:pointer;color:#4d5f77;background:#94a3b80f;border:1px solid #94a3b829;align-items:center;gap:9px;margin-bottom:6px;padding:8px 10px;font-size:11px;transition:all .18s;display:flex}.ci:hover{color:#334155;background:#94a3b81f}.ci-prereq{border-left:2px solid #f0c050;padding-left:8px}#p-prereqs,#p-unlocks{margin-bottom:14px}#p-prereqs h4,#p-unlocks h4{letter-spacing:1.5px;color:#c1912f;text-transform:uppercase;margin-bottom:8px;font-family:IBM Plex Mono,monospace;font-size:9px}.bc-item{color:#7e8ca0;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:10px;transition:color .2s}.bc-item:hover{color:#516178}.bc-sep{color:#9aa8bc;margin:0 2px;font-size:10px}#p-breadcrumb{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:12px;display:flex}#legend{z-index:6;background:var(--glass-1);border:1px solid var(--line-subtle);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-soft);flex-direction:column;gap:5px;padding:10px 12px;display:flex;position:fixed;bottom:20px;left:20px}.li{color:#9db0c8;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:12px;display:flex}.ll{width:18px;height:1.5px}#hdr{z-index:6;border-radius:var(--radius-md);background:var(--glass-1);border:1px solid var(--line-subtle);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-soft);padding:14px 18px;font-family:IBM Plex Mono,monospace;position:fixed;top:20px;left:20px}#hdr h1{color:#d7e3f0;letter-spacing:2.4px;text-transform:uppercase;margin-bottom:6px;font-size:18px}#hdr p{color:#9db0c8;font-size:12px}#home-link{color:var(--ink-soft);opacity:.62;border-radius:var(--radius-sm);letter-spacing:.05em;background:#ffffff08;border:1px solid #ffffff12;align-items:center;gap:4px;margin-bottom:8px;padding:5px 10px;font-family:IBM Plex Mono,monospace;font-size:11px;text-decoration:none;transition:opacity .2s,background .2s;display:inline-flex}#home-link:hover{opacity:1;background:#ffffff12}#sim-hint{color:var(--ink-soft);opacity:0;align-items:center;gap:5px;font-family:IBM Plex Mono,monospace;font-size:10px;transition:opacity .5s;display:none}#sim-hint.visible{opacity:1;display:flex}#sim-hint.fading{opacity:0}.sim-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:5px;height:5px;animation:1.1s ease-in-out infinite simPulse}@media (prefers-reduced-motion:reduce){.sim-dot{opacity:.6;animation:none}body.top-ui-collapsed #top-chrome-hint{animation:none}}#search-box{z-index:10;opacity:1;transition:transform .28s var(--ease-ui), opacity .22s ease;position:fixed;top:24px;left:50%;transform:translate(-50%)translateY(0)}#search-input{background:var(--glass-2);border:1px solid var(--line-subtle);color:#d4dfed;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:400px;min-height:48px;box-shadow:var(--shadow-soft);outline:none;padding:14px 18px;font-family:IBM Plex Mono,monospace;font-size:13px;transition:border-color .2s,background .2s}#search-input::placeholder{color:#90a2bb}#search-input:focus{background:#0f1b30f2;border-color:#c4d6eb73}#search-results{border:1px solid var(--line-subtle);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:400px;max-height:300px;box-shadow:var(--shadow-soft);background:#0a1425f0;display:none;position:absolute;top:52px;left:0;overflow-y:auto}.sr{cursor:pointer;padding:11px 14px;font-family:IBM Plex Mono,monospace;font-size:12px;transition:background .15s}.sr:hover{background:#bfd4ec1f}#search-form{margin:0}#filter-bar{z-index:6;opacity:1;transition:transform .28s var(--ease-ui), opacity .22s ease;flex-wrap:wrap;justify-content:center;gap:6px;display:flex;position:fixed;top:74px;left:50%;transform:translate(-50%)translateY(0)}#top-chrome-trigger{z-index:9;background:0 0;width:min(760px,95vw);height:154px;position:fixed;top:0;left:50%;transform:translate(-50%)}#top-chrome-hint{z-index:9;pointer-events:none;opacity:0;background:linear-gradient(90deg,#f0c0501f,#f0c050c7,#f0c0501f);border-radius:999px;width:132px;height:4px;transition:opacity .2s;position:fixed;top:8px;left:50%;transform:translate(-50%)}body.top-ui-collapsed #hdr{opacity:.22;transform:translateY(-18px)}body.top-ui-collapsed #lang-toggle{opacity:.2;transform:translateY(-18px)}body.top-ui-collapsed #search-box{opacity:0;pointer-events:none;transform:translate(-50%)translateY(-34px)}body.top-ui-collapsed #top-chrome-hint{opacity:1;animation:2.2s ease-in-out infinite topChromeHintPulse}.filter-btn{border:1px solid var(--line-subtle);background:var(--glass-1);color:#b7c8dc;cursor:pointer;letter-spacing:1px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;min-height:44px;padding:10px 14px;font-family:IBM Plex Mono,monospace;font-size:12px;transition:all .15s}.filter-btn.active{background:#f0c05040;border-color:#f0c050bf;box-shadow:0 0 0 1px #f0c05052,0 8px 22px #f0c05033;color:#f7db95!important}.filter-btn:hover{background:#becfe22e}body.top-ui-collapsed #filter-bar{opacity:0;pointer-events:none;transform:translate(-50%)translateY(-44px)}.filter-btn:focus-visible{outline-offset:2px;outline:2px solid #f0c050c7}#mode-toggle{z-index:6;align-items:flex-start;gap:12px;display:flex;position:fixed;top:118px;left:20px}.mode-btn{border:1px solid var(--line-subtle);background:var(--glass-1);color:#9db0c8;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:48px;box-shadow:var(--shadow-soft);border-radius:999px;align-items:center;gap:8px;padding:13px 20px;font-family:IBM Plex Mono,monospace;font-size:13px;transition:all .2s;display:flex}.mode-btn:hover{background:#becfe21f}.mode-btn.active{color:#f6c86a;background:#f0c05029;border-color:#f0c0509e}.mode-indicator{background:currentColor;border-radius:50%;width:6px;height:6px}#help-btn{padding-inline:18px}#learned-info{color:#8af3b5;z-index:6;background:#0b1424b8;border:1px solid #8af3b552;border-radius:999px;min-height:44px;padding:10px 14px;font-family:IBM Plex Mono,monospace;font-size:13px;display:none;position:fixed;top:180px;left:20px}#lang-toggle{z-index:6;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;transition:transform .28s var(--ease-ui), opacity .22s ease;background:0 0;border:none;border-radius:0;align-items:center;gap:0;padding:0;font-family:IBM Plex Mono,monospace;font-size:10px;display:flex;position:fixed;top:20px;right:20px;overflow:visible}.lang-btn{color:#96a9c19e;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px 12px;font-size:13px;transition:color .15s;display:inline-flex;position:relative}.lang-btn+.lang-btn{border-left:none}.lang-btn+.lang-btn:before{content:"/";color:#d6e6f861;pointer-events:none;position:absolute;left:-4px}.lang-btn.active{color:#dbe7f6;background:0 0}.lang-btn:hover{color:#dbe7f6e0;background:0 0}@media (width>=761px){body.panel-open #lang-toggle{right:calc(var(--panel-desktop-width) + 16px);z-index:12}body.panel-open.top-ui-collapsed #lang-toggle{opacity:1;transform:none}}#loading{color:#94a7bf;z-index:20;text-align:center;font-family:IBM Plex Mono,monospace;font-size:12px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#loading button{border:1px solid var(--line-subtle);background:var(--glass-1);color:var(--ink-main);cursor:pointer;border-radius:999px;margin-top:10px;padding:7px 12px;font-family:IBM Plex Mono,monospace;font-size:10px;display:none}@media (width<=1080px){#search-input,#search-results{width:320px}#filter-bar{max-width:360px}#panel{width:304px;padding:22px 18px 18px}:root{--panel-desktop-width:304px}#p-label{font-size:28px}}@media (width<=760px){#hdr{padding:8px 10px;top:12px;left:12px}#search-box{top:62px;left:12px;transform:none}#search-input,#search-results{width:min(66vw,260px)}#filter-bar{justify-content:flex-start;max-width:72vw;top:112px;left:12px;transform:none}#top-chrome-trigger,#top-chrome-hint{display:none}body.top-ui-collapsed #hdr,body.top-ui-collapsed #lang-toggle,body.top-ui-collapsed #search-box,body.top-ui-collapsed #filter-bar{opacity:1;pointer-events:auto;transform:none}#mode-toggle{top:auto;bottom:82px;left:12px}#learned-info{top:auto;bottom:52px;left:12px}#lang-toggle{top:12px;right:12px}#legend{display:none}#panel{border-top:1px solid #94a3b842;border-left:none;border-radius:18px 18px 0 0;width:100%;height:min(72vh,620px);top:auto;bottom:0;transform:translateY(100%)}#panel.open{transform:translateY(0)}#mode-toggle{gap:8px;top:82px}.mode-btn{padding-inline:14px}#app-onboard-card,#shortcuts-card{padding:14px;bottom:12px}.shortcut-row{flex-direction:column;align-items:flex-start}.shortcut-row span:last-child{text-align:left}#p-label{font-size:28px}}#shortcuts-card{width:min(560px,100vw - 24px);box-shadow:var(--shadow-strong);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto;background:#040a16f2;border:1px solid #becfe238;border-radius:14px;padding:16px 18px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}#shortcuts-intro{color:#a5b7ce;margin-bottom:12px;font-size:12px;line-height:1.65}#shortcuts-actions{justify-content:flex-end;gap:8px;display:flex}#welcome-overlay{z-index:8;pointer-events:none;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0}#welcome-overlay.hidden{opacity:0}#app-onboard,#shortcuts-modal{z-index:21;pointer-events:none;background:radial-gradient(circle at 50% 24%,#04081252,#08111fb3);display:none;position:fixed;inset:0}#app-onboard.visible,#shortcuts-modal.visible{pointer-events:auto;display:block}#app-onboard-card{width:min(560px,100vw - 24px);box-shadow:var(--shadow-strong);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto;background:#040a16f2;border:1px solid #becfe238;border-radius:14px;padding:16px 18px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}#app-onboard-step,#shortcuts-kicker{letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;font-family:IBM Plex Mono,monospace;font-size:9px}#app-onboard-title,#shortcuts-title{color:#dce7f4;margin-bottom:8px;font-size:15px;font-weight:500}#app-onboard-list{gap:10px;margin-bottom:14px;list-style:none;display:grid}#app-onboard-list li{color:#a5b7ce;opacity:.5;padding-left:18px;font-size:12px;line-height:1.65;transition:opacity .2s,color .2s,transform .2s;position:relative}#app-onboard-list li:before{content:"";background:#f0c050d1;border-radius:50%;width:8px;height:8px;position:absolute;top:8px;left:0;box-shadow:0 0 0 4px #f0c0501f}#app-onboard-list li.is-active{opacity:1;color:#dce7f4;transform:translate(2px)}#app-onboard-list li.is-active:before{box-shadow:0 0 0 6px #f0c05029}.guide-target-highlight{border-radius:14px;outline:1px solid #f0c0508f;position:relative;box-shadow:0 0 0 6px #f0c0501f;z-index:19!important}#shortcut-list{gap:8px;margin-bottom:14px;display:grid}.shortcut-row{color:#dce7f4;background:#bfd4ec0f;border:1px solid #becfe21f;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:12px;display:flex}.shortcut-row span:last-child{color:#a5b7ce;text-align:right}.shortcut-keys{flex-wrap:wrap;gap:6px;display:inline-flex}.shortcut-keys kbd{color:#f7d27d;background:#f0c05014;border:1px solid #f0c0503d;border-radius:8px;padding:4px 7px;font-family:IBM Plex Mono,monospace;font-size:10px}#app-onboard-actions{justify-content:flex-end;gap:8px;display:flex}.guide-btn{border:1px solid var(--line-subtle);color:#dce8f6;cursor:pointer;background:#bfd4ec14;border-radius:999px;padding:8px 12px;font-family:IBM Plex Mono,monospace;font-size:10px}.guide-btn.primary{color:#f7d27d;background:#f0c05029;border-color:#f0c0507a}#welcome-text{color:var(--ink-soft);background:var(--glass-2);border-radius:var(--radius-lg);border:1px solid var(--line-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:20px 32px;font-family:IBM Plex Sans,sans-serif;font-size:18px}#lp-filter-hint{color:var(--ink-soft);background:var(--glass-1);z-index:6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #f0c0504d;border-radius:999px;padding:8px 16px;font-family:IBM Plex Mono,monospace;font-size:12px;display:none;position:fixed;top:74px;left:50%;transform:translate(-50%)}body.lp-active #lp-filter-hint{display:block}body.lp-active #filter-bar{display:none}
