:root{color-scheme:light;--paper: #efe9dd;--card: #fbf8f1;--card-solid: #fdfbf6;--ink: #2f2b25;--ink-soft: #514b42;--muted: #6b6459;--faint: #8c8578;--ghost: #a49c8d;--line: rgba(120, 106, 84, .16);--line-strong: rgba(120, 106, 84, .26);--accent: #ff8a3d;--accent-deep: #d9701f;--accent-ink: #a4643a;--serif: "Spectral", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--shadow-card: 0 1px 2px rgba(60, 50, 35, .05), 0 22px 52px -34px rgba(60, 50, 35, .42);--shadow-float: 0 12px 34px -22px rgba(60, 50, 35, .55);--card-bd: #e2dacb;--glass: rgba(255, 253, 248, .93);--glass-soft: rgba(255, 253, 248, .65);--chart-bg: rgba(255, 253, 248, .55);--overlay-bg: rgba(255, 253, 248, .88);--chip-bg: rgba(255, 253, 248, .85);--modal-bg: rgba(253, 250, 244, .97);--track: #efe9dc;--na-fill: #cdbfa6;--dot: rgba(120, 106, 84, .26);--scroll: #cfc4ae;--sel-bg: #f4ead9;--bad: #b0492a;--warn: #a2701f;--good: #4d7a63;--hatch-a: #e6e0d3;--hatch-b: #f2eee4;--hatch: repeating-linear-gradient(45deg, var(--hatch-a), var(--hatch-a) 3px, var(--hatch-b) 3px, var(--hatch-b) 6px);--card-glow: radial-gradient(ellipse 520px 300px at 0% 0%, rgba(255, 218, 186, .3), transparent 60%), radial-gradient(ellipse 560px 320px at 100% 100%, rgba(200, 224, 226, .28), transparent 62%)}[data-theme=dark]{color-scheme:dark;--paper: #211d17;--card: #2a251d;--card-solid: #2f2921;--ink: #ece5d7;--ink-soft: #d8cfbf;--muted: #b5aa96;--faint: #9a9280;--ghost: #7c7466;--line: rgba(235, 220, 195, .13);--line-strong: rgba(235, 220, 195, .22);--shadow-card: 0 1px 2px rgba(0, 0, 0, .2), 0 22px 52px -34px rgba(0, 0, 0, .7);--shadow-float: 0 12px 34px -22px rgba(0, 0, 0, .75);--card-bd: #3b342a;--glass: rgba(43, 37, 30, .93);--glass-soft: rgba(52, 45, 36, .6);--chart-bg: rgba(255, 250, 240, .045);--overlay-bg: rgba(38, 33, 27, .9);--chip-bg: rgba(48, 42, 34, .85);--modal-bg: rgba(36, 31, 25, .97);--track: #3a332a;--na-fill: #4c4436;--dot: rgba(235, 220, 195, .1);--scroll: #4c4436;--sel-bg: #3f3627;--bad: #e0795a;--warn: #d9a648;--good: #85b394;--hatch-a: #332d25;--hatch-b: #2a251d;--card-glow: none}[data-theme=dark] .wash{opacity:.22}[data-theme=dark] .veil{background:#0000008c}[data-theme=dark] .tip{background:#14110ef5;color:#ece5d7;box-shadow:0 14px 30px -18px #000000e6,0 0 0 1px #ebdcc324}[data-theme=dark] .tip .mono{color:#ffce9e}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--paper)}body{font-family:var(--serif);color:var(--ink)}#app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:5px}.mono{font-family:var(--mono)}.board{position:absolute;top:0;right:0;bottom:0;left:0;cursor:grab;background-color:var(--paper);background-image:radial-gradient(circle,var(--dot) 1.1px,transparent 1.1px)}.board.dragging{cursor:grabbing}.world{position:absolute;left:0;top:0;transform-origin:0 0}.wash{position:absolute;border-radius:50%;filter:blur(26px);pointer-events:none}.section{position:absolute;display:flex;flex-direction:column;gap:14px}.section-head{display:flex;align-items:baseline;gap:14px}.section-tag{font-family:var(--mono);font-size:12px;font-weight:600;color:#fdf8ef;background:var(--accent);padding:4px 11px;border-radius:2px;letter-spacing:.06em}.section-title{font-size:24px}.section-sub{font-size:15px;font-style:italic;color:var(--faint)}.card{background:var(--card);background-image:var(--card-glow);border:1px solid var(--card-bd);border-radius:4px;box-shadow:var(--shadow-card);overflow:hidden}.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}.eyebrow.accent{color:var(--accent-deep)}.note{font-size:14px;line-height:1.55;color:var(--muted);text-wrap:pretty}.small-note{font-size:13px;line-height:1.45;color:var(--faint);font-style:italic;text-wrap:pretty}.overlay{position:absolute;background:var(--overlay-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-float)}.chip{font-family:var(--mono);font-size:12.5px;padding:7px 13px;border-radius:18px;cursor:pointer;border:1px solid var(--line-strong);background:var(--chip-bg);color:var(--muted);white-space:nowrap;-webkit-user-select:none;user-select:none}.chip:hover{border-color:var(--accent);color:var(--accent-deep)}.chip.on{background:var(--accent);color:#fffaf3;border-color:var(--accent)}.chip.mini{font-size:11.5px;padding:5px 10px}.zbtn{font-family:var(--mono);font-size:16px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--line-strong);cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none}.zbtn:hover{border-color:var(--accent);color:var(--accent-deep)}.panel{position:absolute;right:22px;top:86px;bottom:22px;width:min(430px,36vw);background:var(--modal-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line-strong);border-radius:16px;box-shadow:0 24px 60px -34px #3c32238c;display:flex;flex-direction:column;overflow:hidden;transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .2s}.panel.hidden{transform:translate(480px);opacity:0;pointer-events:none}.panel-head{padding:18px 22px 14px;border-bottom:1px solid var(--line);flex-shrink:0}.panel-body{flex:1;overflow-y:auto;padding:18px 22px 34px;display:flex;flex-direction:column;gap:22px;min-height:0}.tag-pill{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:4px 10px;border-radius:4px;display:inline-block}.stat-card{border:1px solid var(--line);background:var(--glass-soft);border-radius:11px;padding:12px 13px;display:flex;flex-direction:column;gap:6px;flex:1}.metric-row{display:flex;flex-direction:column;gap:5px;padding:9px 0;border-top:1px solid rgba(120,106,84,.12)}.bar-track{height:6px;border-radius:3px;background:var(--track);overflow:hidden}.bar-fill{height:100%;border-radius:3px}.t-row{display:flex;align-items:center;gap:11px;padding:8px 11px;border-radius:9px;background:var(--glass-soft);border:1px solid var(--line);cursor:pointer}.t-row:hover{border-color:var(--accent)}.t-row.on{background:var(--sel-bg);border-color:#e8b07a}.search-box input{font-family:var(--mono);font-size:13px;color:var(--ink);background:transparent;border:none;outline:none;width:210px;padding:9px 4px}.search-drop{position:absolute;top:44px;left:0;right:0;max-height:380px;overflow-y:auto;background:var(--modal-bg);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-float);display:flex;flex-direction:column;padding:6px}.search-item{padding:7px 10px;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:9px}.search-item:hover,.search-item.on{background:#ff8a3d1f}.tip{position:fixed;pointer-events:none;z-index:60;max-width:340px;background:#2f2b25f0;color:#f3efe6;border-radius:9px;padding:9px 12px;font-size:13px;line-height:1.45;box-shadow:0 14px 30px -18px #0009;opacity:0;transition:opacity .12s}.tip.show{opacity:1}.tip .mono{color:#ffd9b8}.minimap{position:absolute;right:22px;bottom:22px;cursor:pointer;overflow:hidden}.minimap .mm-sec{position:absolute;border-radius:2px}.minimap .mm-view{position:absolute;border:1.6px solid var(--accent);border-radius:3px;background:#ff8a3d14}select.plain{font-family:var(--mono);font-size:12.5px;color:var(--muted);background:var(--chip-bg);border:1px solid var(--line-strong);border-radius:9px;padding:7px 9px;cursor:pointer;outline:none}.wall-cell{cursor:pointer}.wall-cell:hover{outline:1.5px solid rgba(47,43,37,.65);outline-offset:0;z-index:2}@keyframes flow{to{stroke-dashoffset:-220}}@keyframes pulse{0%,to{opacity:.5}50%{opacity:.95}}.fade-in{animation:fadein .3s ease-out}@keyframes fadein{0%{opacity:0}to{opacity:1}}.veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;background:#2f2b2559;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center}.modal{width:min(800px,92vw);max-height:86vh;background:var(--modal-bg);border:1px solid var(--line-strong);border-radius:18px;box-shadow:0 40px 90px -40px #3c3223b3;display:flex;flex-direction:column;overflow:hidden;animation:modalin .2s cubic-bezier(.22,1,.36,1)}@keyframes modalin{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1}}.modal-head{padding:20px 26px 16px;border-bottom:1px solid var(--line);flex-shrink:0}.modal-body{padding:18px 26px 30px;overflow-y:auto;display:flex;flex-direction:column;gap:18px;min-height:0}.wctl{display:flex;align-items:center;gap:12px}.wlabel{font-size:11.5px;color:var(--faint);white-space:nowrap}input[type=range]{accent-color:var(--accent);height:22px;cursor:pointer}.node-more{position:absolute;right:-7px;top:-7px;width:18px;height:18px;border-radius:10px;background:var(--accent);color:#fffaf3;font-family:var(--mono);font-size:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #3c322340}.node-click{cursor:pointer;transition:box-shadow .13s,transform .13s}.node-click:hover{box-shadow:0 0 0 2.5px #ff8a3d73,0 14px 30px -20px #3c322399!important;transform:translateY(-1px)}@media(max-width:760px){.topbar{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;left:10px!important;right:10px!important;top:10px!important;padding:8px 12px!important;gap:8px!important;scrollbar-width:none}.topbar::-webkit-scrollbar{display:none}.topbar>*{flex:0 0 auto!important}.topbar>div{flex-wrap:nowrap!important}.topbar .mono{white-space:nowrap}.tb-legend{display:none!important}.bottombar{left:10px!important;right:10px!important;bottom:10px!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:8px 10px!important}.bottombar::-webkit-scrollbar{display:none}.minimap{display:none!important}.panel{left:10px!important;right:10px!important;top:auto!important;bottom:10px!important;width:auto!important;height:56vh}.panel.hidden{transform:translateY(130%)}.search-box input{font-size:16px;width:140px}.chip{padding:8px 13px}.zbtn{width:34px;height:34px}.modal{width:94vw;max-height:82vh}.modal-head{padding:16px 18px 12px}.modal-body{padding:14px 18px 24px}}
