:root{--bg-0: #080b14;--bg-1: #0d1220;--bg-2: #141b2e;--surface: rgba(20, 26, 44, .78);--surface-solid: #151c2f;--surface-hi: rgba(36, 45, 70, .9);--line: rgba(255, 255, 255, .09);--line-hi: rgba(255, 255, 255, .16);--ink: rgba(237, 241, 252, .94);--ink-2: rgba(205, 214, 234, .7);--ink-3: rgba(178, 190, 214, .56);--accent: #8fb8ff;--danger: #ff8080;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--shadow-panel: 0 24px 70px -20px rgba(0, 0, 0, .72), 0 2px 10px rgba(0, 0, 0, .3);--font-ui: "Inter", system-ui, -apple-system, sans-serif;--font-display: "Inter", system-ui, -apple-system, sans-serif;--ease: cubic-bezier(.22, .61, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur: .26s;--breath: 11s;--engrave: inset 0 1px 0 rgba(255, 255, 255, .055)}:root[data-theme=light]{--bg-0: #f4f2ee;--bg-1: #eceaf3;--bg-2: #e2e4ef;--surface: rgba(255, 255, 255, .86);--surface-solid: #ffffff;--surface-hi: rgba(240, 240, 248, .95);--line: rgba(20, 24, 40, .1);--line-hi: rgba(20, 24, 40, .2);--ink: rgba(22, 26, 40, .94);--ink-2: rgba(50, 58, 82, .74);--ink-3: rgba(70, 80, 110, .6);--accent: #3f62b8;--shadow-panel: 0 20px 56px -22px rgba(30, 36, 60, .32), 0 1px 4px rgba(30, 36, 60, .08);--engrave: inset 0 1px 0 rgba(255, 255, 255, .9)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);color:var(--ink);background:var(--bg-0);overflow:hidden;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.app{position:fixed;top:0;right:0;bottom:0;left:0;transition:--accent .6s var(--ease);background:radial-gradient(120% 90% at 18% 8%,var(--bg-2) 0%,transparent 58%),radial-gradient(100% 80% at 85% 92%,rgba(90,70,140,.22) 0%,transparent 60%),linear-gradient(168deg,var(--bg-1) 0%,var(--bg-0) 100%)}.app:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(115% 90% at 50% 45%,transparent 48%,rgba(0,0,0,.42) 100%);z-index:1}:root[data-theme=light] .app:after{background:radial-gradient(115% 90% at 50% 45%,transparent 52%,rgba(40,44,70,.1) 100%)}.canvas-host{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;touch-action:none;cursor:grab}.canvas-host:active{cursor:grabbing}.grain{position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;z-index:5;pointer-events:none;opacity:.032;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain-shift calc(var(--breath) * .09) steps(4) infinite}:root[data-theme=light] .grain{opacity:.05;mix-blend-mode:multiply}@keyframes grain-shift{0%{transform:translate(0)}25%{transform:translate(-2%,1%)}50%{transform:translate(1%,-2%)}75%{transform:translate(-1%,-1%)}to{transform:translate(0)}}.label-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.node-label{position:absolute;top:0;left:0;width:168px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;will-change:transform,opacity;transition:opacity .14s linear}.node-label__type{position:absolute;left:50%;top:calc(-2 * var(--r, 34px) - 18px);transform:translate(-50%);font-size:11px;font-weight:500;color:var(--accent);white-space:nowrap;text-shadow:0 1px 8px rgba(0,0,0,.7);opacity:0;transition:opacity .16s var(--ease)}.node-label.is-active .node-label__type{opacity:.9}.node-label:before{content:"";position:absolute;top:0;left:50%;width:1px;height:11px;background:linear-gradient(to bottom,color-mix(in srgb,var(--accent) 70%,transparent),transparent)}.node-label[data-tier="0"]:before{opacity:0}.node-label__title{margin-top:11px;font-size:13px;font-weight:500;line-height:1.3;color:var(--ink);text-shadow:0 1px 10px rgba(0,0,0,.6),0 0 2px rgba(0,0,0,.5);max-width:158px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}:root[data-theme=light] .node-label__title,:root[data-theme=light] .node-label__type{text-shadow:0 1px 6px rgba(255,255,255,.95),0 0 2px rgba(255,255,255,.9)}:root[data-theme=light] .node-label__type{color:#303852cc;opacity:1}:root[data-theme=light] .node-label__body,:root[data-theme=light] .node-label__tags{color:#3c445eb8;text-shadow:0 1px 6px rgba(255,255,255,.9)}.node-label__body,.node-label__tags{font-size:11.5px;line-height:1.45;color:var(--ink-3);max-width:158px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.node-label:not(.is-selected) .node-label__body,.node-label:not(.is-selected) .node-label__tags{display:none}.node-label__tags em{font-style:normal;margin:0 4px;opacity:.8}.node-label.is-empty .node-label__title{color:var(--ink-3);font-style:italic;font-weight:400}.node-label.is-ghost .node-label__title{color:var(--ink-2);font-weight:400;text-decoration:underline dotted color-mix(in srgb,var(--accent) 55%,transparent);text-underline-offset:3px}.node-label.is-retired{filter:saturate(.2);opacity:.6}.node-label.is-core .node-label__title{font-weight:600;font-size:13.5px;letter-spacing:-.01em}.node-label[data-tier="0"] .node-label__type,.node-label[data-tier="0"] .node-label__title,.node-label[data-tier="0"] .node-label__body,.node-label[data-tier="0"] .node-label__tags,.node-label[data-tier="1"] .node-label__body,.node-label[data-tier="1"] .node-label__tags,.node-label[data-tier="1"] .node-label__type{opacity:0}.link-preview{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.link-preview line{stroke:var(--accent);stroke-width:1.6;stroke-dasharray:5 5;opacity:.85}.link-preview circle{fill:var(--accent)}.toolbar{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:10px;padding:12px 16px;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg-0) 82%,transparent),transparent)}.toolbar__brand{display:flex;align-items:center;gap:10px}.mark{width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 34% 32%,#fff 0%,var(--accent) 42%,transparent 72%);box-shadow:0 0 22px -2px var(--accent);animation:breathe var(--breath) var(--ease) infinite;transition:background .6s var(--ease),box-shadow .6s var(--ease)}@keyframes breathe{0%,to{transform:scale(1);opacity:.82}42%{transform:scale(1.16);opacity:1}}.wordmark{font-family:var(--font-display);font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--ink-2);white-space:nowrap}.wordmark i{font-style:normal;font-weight:400;color:var(--ink-3)}.toolbar__divider{width:1px;height:16px;background:var(--line)}.toolbar__name{background:none;border:1px solid transparent;border-radius:var(--r-sm);padding:4px 8px;font-family:var(--font-display);font-size:14px;font-weight:500;letter-spacing:-.01em;width:20ch;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.toolbar__name:hover,.toolbar__name:focus{border-color:var(--line);background:var(--surface);outline:none}.toolbar__spacer{flex:1}.toolbar__group,.seg{position:relative;display:flex;align-items:center;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--line);border-radius:999px;-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);box-shadow:var(--engrave),0 8px 24px -14px #000000b3}.seg>button.is-on,.toolbar__group>button.is-on{transition:background .32s var(--ease-out),color .2s var(--ease)}.seg>button{min-width:108px;text-align:center}.seg__thumb{position:absolute;top:3px;bottom:3px;left:3px;width:108px;border-radius:999px;background:var(--surface-hi);box-shadow:inset 0 0 0 1px var(--line-hi),var(--engrave);transition:transform .42s var(--ease-out);pointer-events:none}.seg[data-mode="3d"] .seg__thumb{transform:translate(108px)}.seg>button.is-on{background:none;box-shadow:none}.toolbar__group>button,.seg>button,.menu>summary{position:relative;border:none;background:none;color:var(--ink-2);font-size:12.5px;font-weight:500;padding:6px 13px;border-radius:999px;white-space:nowrap;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.toolbar__group>button:hover,.seg>button:hover,.menu>summary:hover{color:var(--ink);background:var(--surface-hi)}.toolbar__group>button.is-on,.seg>button.is-on{color:var(--ink);background:var(--surface-hi);box-shadow:inset 0 0 0 1px var(--line-hi)}.toolbar__group>.icon-only,.menu>summary.icon-only{display:grid;place-items:center;width:32px;padding:0;height:28px}.count{display:inline-grid;place-items:center;min-width:17px;height:17px;margin-left:6px;padding:0 4px;font-size:11px;font-weight:600;border-radius:999px;background:var(--accent);color:var(--bg-0)}.menu{position:relative}.menu>summary{list-style:none;display:inline-block}.menu>summary::-webkit-details-marker{display:none}.menu__body{position:absolute;right:0;top:calc(100% + 8px);min-width:190px;display:flex;flex-direction:column;padding:6px;background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-panel);animation:rise .18s var(--ease)}.menu__body button{text-align:left;background:none;border:none;padding:8px 10px;border-radius:var(--r-sm);font-size:13px;color:var(--ink-2)}.menu__body button:hover{background:var(--surface-hi);color:var(--ink)}.menu__body hr{border:none;border-top:1px solid var(--line);margin:5px 2px}.dock{position:absolute;top:66px;right:14px;bottom:84px;width:372px;max-width:calc(100vw - 28px);z-index:18;pointer-events:none;display:flex}.dock.is-open{pointer-events:auto}.panel{position:relative;display:flex;flex-direction:column;width:100%;background:var(--surface);-webkit-backdrop-filter:blur(24px) saturate(1.3);backdrop-filter:blur(24px) saturate(1.3);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-panel),var(--engrave);overflow:hidden;animation:slide-in .34s var(--ease-out)}.panel:before{content:"";position:absolute;top:0;left:12%;right:12%;height:1px;background:linear-gradient(to right,transparent,color-mix(in srgb,var(--accent) 85%,transparent),transparent);transition:background .6s var(--ease)}.panel:after{content:"";position:absolute;top:0;left:25%;right:25%;height:54px;pointer-events:none;background:radial-gradient(60% 100% at 50% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 72%);transition:background .6s var(--ease)}@keyframes slide-in{0%{opacity:0;transform:translate(18px) scale(.985)}}@keyframes rise{0%{opacity:0;transform:translateY(-5px)}}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 14px 12px 16px;border-bottom:1px solid var(--line)}.panel__head h3{position:relative;margin:0;font-family:var(--font-display);font-size:14.5px;font-weight:600;letter-spacing:-.01em}.panel__scroll{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.panel__foot{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}.panel__foot button{flex:1;padding:8px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-hi);color:var(--ink-2);font-size:12.5px;transition:all var(--dur) var(--ease)}.panel__foot button:hover{color:var(--ink);border-color:var(--line-hi)}.panel__foot .danger:hover{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,transparent)}.icon-btn{border:none;background:none;color:var(--ink-3);font-size:13px;line-height:1;padding:5px 7px;border-radius:var(--r-sm)}.icon-btn:hover{color:var(--ink);background:var(--surface-hi)}.chip{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.chip i{font-style:normal;font-size:13px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-size:12px;font-weight:500;color:var(--ink-2);display:flex;justify-content:space-between}.field>span b{color:var(--ink-2)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}input[type=text],input:not([type]),input[type=date],textarea,select,.field input{width:100%;padding:9px 11px;background:#0000002e;border:1px solid var(--line);border-radius:var(--r-sm);font-size:13px;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}:root[data-theme=light] input,:root[data-theme=light] textarea,:root[data-theme=light] select{background:#fffc}textarea{resize:vertical;line-height:1.5;font-family:inherit}input:focus,textarea:focus,select:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:#00000042}::placeholder{color:var(--ink-3)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;padding:0;border:none;height:20px}input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:999px;background:var(--line-hi)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-5.5px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px -2px var(--accent)}.toggle{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.toggle input{margin-top:2px;accent-color:var(--accent);width:auto}.toggle span{font-size:13px;display:flex;flex-direction:column;gap:2px}.toggle em{font-style:normal;font-size:11.5px;color:var(--ink-3);line-height:1.45}.muted{color:var(--ink-2);font-size:13px;line-height:1.55;margin:0}.muted.lead{font-size:13px}.small{font-size:11.5px;line-height:1.45;color:var(--ink-3)}h4{margin:4px 0 -4px;font-size:12px;font-weight:600;color:var(--ink-2)}.wide{width:100%;padding:9px;border-radius:var(--r-sm);border:1px solid var(--line);background:none;color:var(--ink-2);font-size:12.5px}.wide:hover{color:var(--ink);border-color:var(--line-hi)}.ghost-note{padding:10px 12px;font-size:13px;line-height:1.55;color:var(--ink-2);background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);border-radius:var(--r-sm)}.ghost-note button{background:none;border:none;padding:0 0 0 4px;color:var(--accent);text-decoration:underline;font-size:inherit}.edges{display:flex;flex-direction:column;gap:8px}.edge-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:7px 8px;background:#00000029;border:1px solid var(--line);border-radius:var(--r-sm)}:root[data-theme=light] .edge-row{background:#fff9}.edge-row__dir{color:var(--ink-3);font-size:12px}.edge-row__other{min-width:0;text-align:left;background:none;border:none;padding:0;font-size:12.5px;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edge-row .icon-btn{grid-column:-2}.edge-row select{width:auto;padding:3px 5px;font-size:11.5px;background:none;border-color:transparent;color:var(--ink-3)}.edge-row select:hover{border-color:var(--line);color:var(--ink-2)}.edge-row__lens{grid-column:2 / -1;font-size:11.5px;color:#c9a6ff}.lens-summary{padding:12px;border-radius:var(--r-md);background:#c9a6ff14;border:1px solid rgba(201,166,255,.2)}.lens-summary h4{margin:0 0 6px;color:#c9a6ff}.lens-summary p{margin:0;font-size:12.5px;line-height:1.6;color:var(--ink-2)}.loop-card{padding:14px;border-radius:var(--r-md);border:1px solid var(--line);background:#00000029;display:flex;flex-direction:column;gap:10px;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}:root[data-theme=light] .loop-card{background:#ffffff9e}.loop-card.is-active{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 9%,transparent)}.loop-card__top{display:flex;align-items:center;gap:12px}.loop-ring{flex:0 0 auto;overflow:visible}.loop-ring__track{stroke:var(--line-hi);stroke-width:1;stroke-linecap:round}.loop-card.is-active .loop-ring__track{stroke:color-mix(in srgb,var(--accent) 60%,transparent)}.loop-ring__exit{stroke:#7fd7c4;stroke-width:1;stroke-dasharray:2 2.6}.loop-card__heading{min-width:0;flex:1;display:flex;flex-direction:column;gap:1px}.loop-card__meta{font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.loop-card__name{width:100%;background:none;border:none;border-bottom:1px dashed transparent;padding:0 0 3px;font-size:14px;font-weight:600;letter-spacing:-.01em}.loop-card__name:hover,.loop-card__name:focus{border-bottom-color:var(--line-hi)}.thread{list-style:none;margin:0;padding:0}.thread li{position:relative;display:flex;align-items:center;gap:10px;padding:4px 0 4px 2px}.thread li:before{content:"";position:absolute;left:5px;top:calc(50% + 7px);bottom:calc(-50% + 6px);width:1px;background:linear-gradient(to bottom,color-mix(in srgb,var(--accent) 80%,transparent),color-mix(in srgb,var(--accent) 22%,transparent))}.thread li:last-of-type:before{display:none}.thread__dot{flex:0 0 auto;width:9px;height:9px;margin-left:1px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px -1px var(--accent);z-index:1}.thread__label{flex:1;min-width:0;text-align:left;border:none;background:none;padding:0;font-size:13px;line-height:1.45;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .16s var(--ease)}.thread__label:hover{color:var(--ink)}.thread__label em{font-style:italic;color:var(--ink-3)}.thread__exit{flex:0 0 auto;border:1px solid transparent;background:none;border-radius:999px;padding:2px 8px;font-size:11px;color:var(--ink-3);opacity:0;transition:all .16s var(--ease)}.thread li:hover .thread__exit,.thread li.is-exit .thread__exit{opacity:1}.thread__exit:hover{color:#7fd7c4;border-color:color-mix(in srgb,#7fd7c4 45%,transparent)}.thread li.is-exit .thread__exit{color:#7fd7c4;border-color:color-mix(in srgb,#7fd7c4 50%,transparent);border-style:dashed}.thread li.is-exit .thread__dot{background:none;border:1.5px dashed #7fd7c4;box-shadow:0 0 12px -2px #7fd7c4}.thread__return{font-size:11.5px;color:var(--ink-3);padding-top:2px}.thread__return span{width:9px;height:9px;margin-left:1px;border-left:1px solid var(--line-hi);border-bottom:1px solid var(--line-hi);border-bottom-left-radius:6px;flex:0 0 auto}.loop-card__actions{display:flex;gap:6px}.loop-card__actions button{flex:1;padding:7px;font-size:11.5px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-hi);color:var(--ink-2)}.loop-card__actions button:hover{color:var(--ink);border-color:var(--line-hi)}.loop-card__actions .ghost{flex:0 0 auto;background:none}.dismissed{font-size:12px;color:var(--ink-3)}.dismissed button{display:block;margin-top:6px;background:none;border:none;color:var(--accent);font-size:12px;padding:0}.tpl-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tpl-card{display:flex;flex-direction:column;gap:5px;text-align:left;padding:13px;border-radius:var(--r-md);border:1px solid var(--line);background:#00000029;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease)}:root[data-theme=light] .tpl-card{background:#ffffffa8}.tpl-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.tpl-card__shape{font-size:13px;line-height:1.25;white-space:pre;color:var(--accent);opacity:.85;margin-bottom:3px}.tpl-card__name{font-size:13px;font-weight:600}.tpl-card__blurb{font-size:11.5px;line-height:1.5;color:var(--ink-3)}.pill-row{display:flex;flex-wrap:wrap;gap:6px}.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;font-size:11.5px;border-radius:999px;border:1px solid var(--line);background:none;color:var(--ink-3);transition:all var(--dur) var(--ease)}.pill i{font-style:normal;color:var(--accent);opacity:.5}.pill.is-on{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.pill.is-on i{opacity:1}.prose p{font-size:13px;line-height:1.55;color:var(--ink-2);margin:0 0 12px}.prose b{color:var(--ink);font-weight:600}.keys{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:12.5px;color:var(--ink-2)}.keys li{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.keys li span{color:var(--ink);flex-shrink:0}.keys li em{font-style:normal;color:var(--ink-3);text-align:right}kbd{display:inline-block;padding:1px 6px;font-family:var(--font-ui);font-size:11px;border-radius:5px;border:1px solid var(--line-hi);background:var(--surface-hi);color:var(--ink)}.legend{position:absolute;left:16px;bottom:96px;z-index:15;display:flex;flex-direction:column;gap:1px;padding:6px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:.7;transition:opacity var(--dur) var(--ease)}.legend:hover,.legend:focus-within{opacity:1}.legend button span{display:grid;grid-template-columns:0fr;opacity:0;transition:grid-template-columns .22s var(--ease-out),opacity .16s var(--ease)}.legend button span>b{overflow:hidden;white-space:nowrap;font-weight:400}.legend:hover button span,.legend:focus-within button span{grid-template-columns:1fr;opacity:1}.legend button{display:flex;align-items:center;gap:0;padding:4px 6px;border:none;background:none;border-radius:6px;font-size:11.5px;color:var(--ink-2);transition:all .16s var(--ease)}.legend button i{font-style:normal;color:var(--accent);font-size:12px;width:14px;margin-right:0;text-align:center;transition:margin .22s var(--ease-out)}.legend:hover button i,.legend:focus-within button i{margin-right:8px}.legend button span{letter-spacing:.02em}.legend button:hover{background:var(--surface-hi);color:var(--ink)}.legend button.is-off{opacity:.35;text-decoration:line-through}.timeline{position:absolute;left:50%;bottom:20px;transform:translate(-50%);z-index:16;display:flex;align-items:center;gap:12px;padding:9px 14px;width:min(560px,calc(100vw - 32px));border-radius:999px;background:var(--surface);border:1px solid var(--line);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-panel)}.timeline__track{position:relative;flex:1;height:22px;display:flex;align-items:center}.timeline__track input[type=range]{position:relative;z-index:2;width:100%;background:none}.timeline__track input[type=range]::-webkit-slider-runnable-track{background:transparent}.timeline__ticks{position:absolute;top:0;right:7px;bottom:0;left:7px;z-index:0}.timeline__ticks span{position:absolute;top:3px;width:1.5px;height:16px;margin-left:-.75px;border-radius:1px;transition:opacity .22s var(--ease)}.timeline__fill{position:absolute;left:7px;right:7px;top:50%;height:1px;margin-top:-.5px;z-index:1;background:linear-gradient(to right,transparent,color-mix(in srgb,var(--accent) 70%,transparent));pointer-events:none}.timeline__play,.timeline__now{border:1px solid var(--line);background:var(--surface-hi);color:var(--ink-2);border-radius:999px;font-size:11px;padding:5px 10px;line-height:1}.timeline__play{width:30px;height:30px;display:grid;place-items:center;padding:0}.timeline__play:hover,.timeline__now:hover{color:var(--ink)}.timeline__read{display:flex;flex-direction:column;align-items:flex-end;line-height:1.3;min-width:92px}.timeline__read b{font-size:11.5px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.01em}.timeline__read span{font-size:11px;color:var(--ink-3)}.palette-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;justify-content:center;padding-top:15vh;background:#04060c80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .16s var(--ease)}@keyframes fade{0%{opacity:0}}.palette{width:min(560px,calc(100vw - 32px));height:fit-content;max-height:64vh;display:flex;flex-direction:column;background:var(--surface-solid);border:1px solid var(--line-hi);border-radius:var(--r-lg);box-shadow:var(--shadow-panel);overflow:hidden;animation:rise .2s var(--ease)}.palette>input{border:none;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:16px 18px;font-size:15px}.palette ul{list-style:none;margin:0;padding:6px;overflow-y:auto}.palette li button{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;border:none;background:none;padding:9px 12px;border-radius:var(--r-sm);color:var(--ink-2)}.palette li button.is-active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--ink)}.palette li button span{font-size:13px;flex-shrink:0}.palette li button em{font-style:normal;font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette__none{padding:16px;font-size:13px;color:var(--ink-3)}.radial{position:absolute;z-index:25;width:0;height:0}.radial__scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;border:none;background:transparent;cursor:default}.radial__orbit{position:absolute;transform:translate(-50%,-50%);border:1px dashed color-mix(in srgb,var(--accent) 26%,transparent);border-radius:50%;animation:orbit-in .42s var(--ease-out) backwards}@keyframes orbit-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.82) rotate(-18deg)}}.radial__hub{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px dashed var(--line-hi);font-size:11px;color:var(--ink-3)}.radial__item{position:absolute;display:flex;flex-direction:column;align-items:center;gap:1px;width:78px;padding:8px 4px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-solid);box-shadow:var(--shadow-panel);color:var(--ink-2);animation:pop .22s var(--ease) backwards;transition:border-color .16s var(--ease),transform .16s var(--ease)}@keyframes pop{0%{opacity:0;scale:.6}}.radial__item:hover{border-color:var(--accent);color:var(--ink);box-shadow:var(--shadow-panel),0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}.radial__glyph{font-size:15px;color:var(--accent)}.radial__label{font-size:11.5px}.radial__key{position:absolute;top:3px;right:5px;font-size:8.5px;color:var(--ink-3)}.empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:14;width:min(520px,calc(100vw - 48px));display:flex;flex-direction:column;align-items:center;text-align:center;animation:fade .7s var(--ease)}.empty__sigil{width:72px;height:72px;margin:0 0 28px;display:block;overflow:visible}.empty__sigil-ring{fill:none;stroke:color-mix(in srgb,var(--accent) 40%,transparent);stroke-width:1;stroke-dasharray:214;stroke-dashoffset:214;animation:draw-ring 2.6s var(--ease-out) .3s forwards}.empty__sigil-dot{fill:var(--accent);opacity:0;animation:dot-in .9s var(--ease-out) forwards,breathe var(--breath) var(--ease) infinite;transform-box:fill-box;transform-origin:center}.empty__sigil-dot:nth-of-type(2){animation-delay:.9s,0s}.empty__sigil-dot:nth-of-type(3){animation-delay:1.5s,-3.6s}.empty__sigil-dot:nth-of-type(4){animation-delay:2.1s,-7.2s}@keyframes draw-ring{to{stroke-dashoffset:0}}@keyframes dot-in{to{opacity:.9}}.empty__eyebrow{display:block;margin-bottom:16px;font-size:11px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-3)}.empty h1{margin:0 0 20px;font-size:clamp(26px,4vw,38px);font-weight:600;line-height:1.15;letter-spacing:-.03em;text-wrap:balance}.empty h1 em{font-style:normal;font-weight:300;color:var(--accent)}.empty p{margin:0 0 32px;max-width:52ch;text-align:left;font-size:14.5px;line-height:1.6;color:var(--ink-2)}.empty__actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.empty__actions button{padding:11px 22px;font-weight:500;border-radius:999px;border:1px solid var(--line-hi);background:var(--surface);color:var(--ink);font-size:13.5px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all var(--dur) var(--ease)}.empty__actions button:hover{color:var(--ink);transform:translateY(-1px)}.empty__actions .primary{background:var(--ink);color:var(--bg-0);border-color:transparent;font-weight:500}.empty__actions .primary:hover{color:var(--bg-0);box-shadow:0 10px 30px -10px #8fb8ff8c}.empty p.empty__fine{margin:28px 0 0;max-width:none;text-align:center;font-size:11.5px;line-height:1.5;color:var(--ink-3)}.mode-note{position:absolute;top:66px;left:50%;transform:translate(-50%);z-index:15;padding:6px 14px;font-size:11.5px;color:var(--ink-3);background:var(--surface);border:1px solid var(--line);border-radius:999px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:fade .4s var(--ease);pointer-events:none}@media (max-width: 760px){.dock{left:12px;right:12px;width:auto;top:auto;bottom:76px;max-height:52vh}.legend{display:none}.toolbar{flex-wrap:wrap;row-gap:8px}.toolbar__name{width:12ch}.field-row{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.panel__scroll::-webkit-scrollbar,.palette ul::-webkit-scrollbar{width:9px}.panel__scroll::-webkit-scrollbar-thumb,.palette ul::-webkit-scrollbar-thumb{background:var(--line-hi);border-radius:999px;border:3px solid transparent;background-clip:content-box}.port{position:absolute;top:0;left:0;z-index:6;display:flex;align-items:center;gap:6px;height:26px;padding:0 9px 0 0;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:var(--surface-solid);color:var(--ink-2);font-size:11.5px;white-space:nowrap;box-shadow:var(--shadow-panel),0 0 18px -6px var(--accent);cursor:grab;opacity:0;transition:opacity .16s var(--ease),border-color .16s var(--ease);animation:pop .24s var(--ease-out)}.port:hover{border-color:var(--accent);color:var(--ink)}.port:active{cursor:grabbing}.port__plus{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--bg-0);font-size:16px;font-weight:500;line-height:1}.port__hint{display:grid;grid-template-columns:0fr;opacity:0;transition:grid-template-columns .24s var(--ease-out),opacity .2s var(--ease)}.port__hint>span{overflow:hidden;white-space:nowrap}.port:hover .port__hint{grid-template-columns:1fr;opacity:1}.controls{position:absolute;right:16px;bottom:20px;z-index:15;display:flex;flex-direction:column;align-items:flex-end;gap:8px;transition:right .34s var(--ease-out)}.app:has(.dock.is-open) .controls{right:400px}@media (max-width: 760px){.app:has(.dock.is-open) .controls{display:none}}.controls__add{display:flex;align-items:center;gap:8px;padding:8px 14px 8px 10px;border-radius:999px;border:1px solid var(--line-hi);background:var(--ink);color:var(--bg-0);font-size:12.5px;font-weight:500;box-shadow:0 10px 30px -12px #000c,var(--engrave);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.controls__add span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--accent);color:var(--bg-0);font-size:15px;line-height:1}.controls__add:hover{transform:translateY(-1px);box-shadow:0 14px 34px -12px color-mix(in srgb,var(--accent) 50%,transparent),var(--engrave)}.controls__zoom{display:flex;flex-direction:column;padding:3px;border-radius:12px;background:var(--surface);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--engrave)}.controls__zoom button{width:30px;height:28px;border:none;background:none;border-radius:9px;color:var(--ink-2);font-size:15px;line-height:1}.controls__zoom button:hover{background:var(--surface-hi);color:var(--ink)}.toasts{position:absolute;top:64px;left:50%;transform:translate(-50%);z-index:30;display:flex;flex-direction:column;gap:8px;width:min(480px,calc(100vw - 32px));pointer-events:none;transition:left .34s var(--ease-out)}.app:has(.dock.is-open) .toasts{left:calc(50% - 190px)}.toast{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 16px;border-radius:999px;background:var(--surface-solid);border:1px solid var(--line-hi);box-shadow:var(--shadow-panel),var(--engrave);font-size:12.5px;color:var(--ink-2);pointer-events:auto;animation:rise .26s var(--ease-out)}.toast>span{flex:1;line-height:1.45}.toast>button{border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--ink);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:500;white-space:nowrap}.toast>.toast__x{border:none;background:none;color:var(--ink-3);padding:4px 6px;font-size:11px}.hints{position:absolute;left:50%;bottom:24px;transform:translate(-50%);z-index:17;display:flex;align-items:center;gap:18px;padding:10px 12px 10px 20px;border-radius:999px;background:var(--surface);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-panel),var(--engrave);animation:rise .4s var(--ease-out)}.hints ol{display:flex;gap:18px;margin:0;padding:0;list-style:none;counter-reset:h;font-size:12px;color:var(--ink-2)}.hints li{counter-increment:h;display:flex;align-items:center;gap:8px;white-space:nowrap}.hints li:before{content:counter(h);display:grid;place-items:center;width:17px;height:17px;border-radius:50%;border:1px solid var(--line-hi);font-size:11px;color:var(--ink-3)}.hints b{color:var(--ink);font-weight:600}.hints>button{white-space:nowrap;border:none;border-radius:999px;background:var(--ink);color:var(--bg-0);padding:6px 12px;font-size:12px;font-weight:500}@media (max-width: 900px){.hints{display:none}}.saved{display:flex;white-space:nowrap;transform:translate(-4px);align-items:center;gap:7px;font-size:11.5px;color:var(--ink-3);opacity:0;pointer-events:none;transition:opacity .4s var(--ease),transform .4s var(--ease)}.saved.is-on{opacity:1;transform:translate(0)}.saved__dot{width:5px;height:5px;border-radius:50%;background:#7fd7c4;box-shadow:0 0 8px #7fd7c4}.about-type{margin:-4px 0 0;font-size:13px;line-height:1.55;color:var(--ink-2)}.more{border-top:1px solid var(--line);padding-top:8px}.more>summary{list-style:none;cursor:pointer;font-size:12px;font-weight:500;color:var(--ink-2);display:flex;align-items:center;gap:8px;padding:4px 0 8px}.more>summary::-webkit-details-marker{display:none}.more>summary:after{content:"";width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s var(--ease)}.more[open]>summary:after{transform:rotate(-135deg) translateY(-1px)}.more[open]>summary{color:var(--ink-2)}.more>.field,.more>.field-row{margin-top:12px}.lens-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto}.lens-list label{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ink-2);cursor:pointer}.lens-list input{width:auto;accent-color:#c9a6ff}.lens-list i{font-style:normal;color:var(--ink-3)}.lens-count{margin:10px 0 0;font-size:12px;color:#c9a6ff}.guided__progress{display:flex;gap:8px;margin:0;padding:0;list-style:none}.guided__progress li{flex:1;height:26px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);color:var(--ink-3);font-size:12px;transition:all .3s var(--ease)}.guided__progress li.is-done{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.guided__progress li.is-now{border-color:var(--accent);color:var(--accent);box-shadow:0 0 16px -6px var(--accent)}.guided__question{margin:8px 0 0;font-size:18px;font-weight:600;line-height:1.3;letter-spacing:-.02em;text-wrap:balance;animation:rise .32s var(--ease-out)}.guided__question em{font-style:normal;font-weight:400;color:var(--accent)}.guided__help{margin:-4px 0 0;font-size:13px;line-height:1.55;color:var(--ink-2)}.guided__input{font-size:14px;line-height:1.5;padding:12px 14px;min-height:84px}.guided__actions{display:flex;gap:8px;align-items:center}.guided__actions--stack{flex-direction:column;align-items:stretch}.guided__actions button{padding:10px 16px;border-radius:999px;border:1px solid var(--line-hi);background:var(--surface-hi);color:var(--ink-2);font-size:13px;transition:all var(--dur) var(--ease)}.guided__actions button:hover{color:var(--ink)}.guided__actions .primary{flex:1;background:var(--ink);color:var(--bg-0);border-color:transparent;font-weight:500}.guided__actions .primary:disabled{opacity:.35;cursor:default}.guided__actions .ghost{background:none;border-color:transparent;color:var(--ink-3)}.guided__fine{margin:-4px 0 0;font-size:11.5px;line-height:1.45;color:var(--ink-3)}.guided-card{display:flex;flex-direction:column;gap:4px;text-align:left;padding:16px;border-radius:var(--r-md);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,transparent),color-mix(in srgb,var(--accent) 5%,transparent));transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}.guided-card:hover{transform:translateY(-2px);border-color:var(--accent)}.guided-card__eyebrow{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.guided-card__name{font-size:15px;font-weight:600;letter-spacing:-.01em}.guided-card__blurb{font-size:12px;line-height:1.55;color:var(--ink-2)}.library .panel__head .back{border:none;background:none;padding:4px 6px 4px 0;font-size:12.5px;color:var(--ink-2);border-radius:var(--r-sm)}.library .panel__head .back:hover{color:var(--ink)}.lib-search{position:relative;padding:12px 14px 0}.lib-search input{padding-right:34px}.lib-search__clear{position:absolute;right:22px;top:21px;border:none;background:none;color:var(--ink-3);font-size:11px;padding:3px 5px}.lib-cats{display:flex;gap:6px;padding:10px 14px 12px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line)}.lib-cats::-webkit-scrollbar{display:none}.lib-cats button{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:none;color:var(--ink-3);font-size:11.5px;white-space:nowrap;transition:all var(--dur) var(--ease)}.lib-cats button b{font-weight:500;font-variant-numeric:tabular-nums;opacity:.6}.lib-cats button:hover{color:var(--ink-2);border-color:var(--line-hi)}.lib-cats button.is-on{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.lib-list{gap:18px;padding-top:14px}.lib-group__head{margin-bottom:8px}.lib-group__head h4{margin:0 0 3px}.lib-group__head p{margin:0;font-size:12px;line-height:1.45;color:var(--ink-3)}.lib-group ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.lib-group li{position:relative;display:flex}.lib-row{flex:1;min-width:0;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px;text-align:left;padding:7px 40px 7px 8px;border-radius:var(--r-md);border:1px solid transparent;background:none;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.lib-row:hover{background:var(--surface-hi);border-color:var(--line)}.lib-mini{flex:0 0 auto;border-radius:10px;background:#0000002e;border:1px solid var(--line)}:root[data-theme=light] .lib-mini{background:#ffffffb3}.lib-row__text{display:flex;flex-direction:column;gap:1px;min-width:0}.lib-row__name{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.005em}.lib-row__blurb{font-size:12px;line-height:1.45;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-row__source{margin-top:1px;font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-row__place{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;border:1px solid var(--line-hi);background:var(--surface-solid);color:var(--ink-2);font-size:15px;line-height:1;opacity:0;transition:opacity var(--dur) var(--ease),background var(--dur) var(--ease)}.lib-group li:hover .lib-row__place,.lib-row__place:focus-visible{opacity:1}.lib-row__place:hover{background:var(--accent);color:var(--bg-0);border-color:transparent}.lib-cat{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.lib-title{margin:-6px 0 0;font-size:20px;font-weight:600;letter-spacing:-.02em;line-height:1.2}.lib-source{margin:-8px 0 0;font-size:11.5px;color:var(--ink-3)}.lib-blurb{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink-2)}.lib-diagram{display:block;margin:4px auto;max-width:100%;overflow:visible}.lib-diagram__edge{stroke:var(--line-hi);stroke-width:1.2}.lib-diagram__edge.is-hot{stroke:#ff9d6e;stroke-width:1.6}.lib-diagram__edge.is-dashed{stroke-dasharray:3 4}.lib-diagram__glyph{font-size:11px;fill:var(--bg-0);pointer-events:none}.lib-signs{margin:0;padding:0 0 0 16px;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.55;color:var(--ink-2)}.lib-signs li::marker{color:var(--accent)}.lib-parts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.lib-parts li{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);font-size:11.5px;color:var(--ink-2)}.lib-parts i{font-style:normal;color:var(--accent)}.library .panel__foot .primary{background:var(--ink);color:var(--bg-0);border-color:transparent;font-weight:500}.library .panel__foot .primary:hover{color:var(--bg-0)}
