@font-face{font-family:FDS Serif;src:url(/assets/DejaVuSerif-CKdAxObk.woff2)format("woff2");font-display:block}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{--bg:#e8edf2;--panel:#f6f8fa;--panel-strong:#fff;--field:#fff;--text:#132238;--muted:#66758a;--border:#cbd4df;--border-strong:#aebbc9;--canvas:#d7dee6;--accent:#087f91;--accent-hover:#066979;--accent-soft:#d9f0f2;--accent-ink:#f6ffff;--warning:#d89422;--danger:#a63e3e;--shadow:0 16px 36px #0f1f3121;--canvas-shadow:0 3px 8px #0f1f311f, 0 26px 65px #0f1f312e;--radius:7px;--panel-radius:0px;--button-height:32px;--display-font:inherit;--stage-pattern:linear-gradient(#ffffff2e 1px, transparent 1px), linear-gradient(90deg, #ffffff2e 1px, transparent 1px);min-width:320px;min-height:100vh;color:var(--text);background:var(--bg);letter-spacing:-.006em;margin:0}body[data-theme=dark]{--bg:#08111e;--panel:#101b2a;--panel-strong:#142238;--field:#18273a;--text:#e9f0f7;--muted:#91a3b7;--border:#2c3b4d;--border-strong:#455870;--canvas:#0b1522;--accent:#6adbd4;--accent-hover:#8ce9e3;--accent-soft:#173b42;--accent-ink:#092228;--warning:#f2ba57;--danger:#ef8181;--shadow:0 20px 48px #00000057;--canvas-shadow:0 2px 0 #ffffff0f, 0 34px 72px #00000073;--stage-pattern:linear-gradient(#84b9ca0e 1px, transparent 1px), linear-gradient(90deg, #84b9ca0e 1px, transparent 1px)}@media (prefers-color-scheme:dark){body[data-theme=automatic]{--bg:#08111e;--panel:#101b2a;--panel-strong:#142238;--field:#18273a;--text:#e9f0f7;--muted:#91a3b7;--border:#2c3b4d;--border-strong:#455870;--canvas:#0b1522;--accent:#6adbd4;--accent-hover:#8ce9e3;--accent-soft:#173b42;--accent-ink:#092228;--warning:#f2ba57;--danger:#ef8181;--shadow:0 20px 48px #00000057;--canvas-shadow:0 2px 0 #ffffff0f, 0 34px 72px #00000073;--stage-pattern:linear-gradient(#84b9ca0e 1px, transparent 1px), linear-gradient(90deg, #84b9ca0e 1px, transparent 1px)}}button,input,select,textarea{font:inherit}button,select,input,textarea{color:var(--text);background:var(--field);border:1px solid var(--border);border-radius:var(--radius)}button{min-height:var(--button-height);cursor:pointer;padding:5px 11px;transition:color .14s,background .14s,border-color .14s,box-shadow .14s,transform .14s}button:hover:not(:disabled){border-color:var(--border-strong);background:var(--panel-strong)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.4;cursor:default}button.primary{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);font-weight:680}button.primary:hover:not(:disabled){color:var(--accent-ink);background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 24%, transparent)}button.wide{width:100%}#app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.appbar{z-index:20;background:var(--panel);border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:20px;min-height:58px;padding:8px 12px;display:flex;position:relative}.appbar-leading,.menus,.file-controls,.split-buttons,.tool-buttons,.dialog-actions{align-items:center;display:flex}.appbar-leading{gap:22px;min-width:0}.menus,.file-controls,.split-buttons,.tool-buttons,.dialog-actions{gap:5px}.file-controls{justify-content:flex-end}.brand{color:var(--text);flex:none;align-items:center;gap:10px;text-decoration:none;display:flex}.brand img{border-radius:9px;width:35px;height:35px;display:block;box-shadow:0 5px 14px #030f1e30}.brand-copy{line-height:1.02;display:grid}.brand-copy strong{font-family:var(--display-font);letter-spacing:-.02em;font-size:14px;font-weight:760}.brand-copy span{color:var(--muted);letter-spacing:.075em;text-transform:uppercase;margin-top:3px;font-size:10px;font-weight:650}.menu{position:relative}.menu>summary{border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;min-width:48px;padding:7px 9px;list-style:none}.menu>summary::-webkit-details-marker{display:none}.menu[open]>summary,.menu>summary:hover{color:var(--text);background:var(--accent-soft)}.menu-panel{z-index:40;background:var(--panel-strong);border:1px solid var(--border);border-radius:calc(var(--radius) + 3px);min-width:255px;box-shadow:var(--shadow);padding:7px;display:grid;position:absolute;top:calc(100% + 8px);left:0}.menu-panel button,.menu-panel a{text-align:left;background:0 0;border:0;justify-content:space-between;gap:28px;display:flex}.menu-panel a{min-height:var(--button-height);color:var(--text);border-radius:var(--radius);padding:7px 11px;text-decoration:none}.menu-panel button:hover,.menu-panel a:hover{color:var(--text);background:var(--accent-soft)}.menu-panel hr{width:100%;margin:5px 0}.menu-panel kbd{color:var(--muted);font:inherit;white-space:nowrap}.menu-template{color:var(--muted);gap:6px;padding:7px 10px;font-size:11px;font-weight:650;display:grid}.menu-template select{width:100%;min-height:34px;padding:5px 7px}.menu-form{gap:3px;padding:10px}.menu-form label{grid-template-columns:1fr auto;align-items:center;gap:18px;padding:5px;display:grid}.menu-form label:has(input[type=checkbox]){grid-template-columns:auto 1fr;justify-content:start}.menu-form select{max-width:150px}.workspace{--library-width:220px;--inspector-width:280px;grid-template-columns:var(--library-width) 6px minmax(340px, 1fr) 6px var(--inspector-width);background:var(--border);flex:1;grid-template-areas:"library library-resizer editor inspector-resizer inspector";min-height:0;display:grid;overflow:hidden}.panel{background:var(--panel)}.library{flex-direction:column;grid-area:library;min-height:0;padding:12px;display:flex}.sidebar-resizer{z-index:5;cursor:col-resize;touch-action:none;background:var(--panel);position:relative}.sidebar-resizer:after{inset-block:0;content:"";background:var(--border);width:1px;transition:background .12s,width .12s;position:absolute;left:2px}.sidebar-resizer:hover:after,.sidebar-resizer:focus-visible:after,body.resizing-sidebar .sidebar-resizer:after{background:var(--accent);width:2px}.library-resizer{grid-area:library-resizer}.inspector-resizer{grid-area:inspector-resizer}body.resizing-sidebar{cursor:col-resize;-webkit-user-select:none;user-select:none}.split-buttons>*{flex:1}.split-buttons button{justify-content:center;align-items:center;gap:7px;display:inline-flex}.split-buttons svg{flex:none;width:16px;height:16px}.library h2,.inspector>h2,.eyebrow{color:var(--muted);letter-spacing:.105em;text-transform:uppercase;margin:15px 0 7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:750}hr{border:0;border-top:1px solid var(--border)}.library>hr{width:100%;margin:13px 0 0}.item-list{background:color-mix(in srgb, var(--field) 72%, transparent);border:1px solid var(--border);border-radius:var(--radius);min-height:80px;overflow:auto}.item-list.objects{flex:1;min-height:120px}.item-list.projects{flex:0 30%;min-height:95px;max-height:260px}.project-row{border-bottom:1px solid color-mix(in srgb, var(--border) 48%, transparent);grid-template-columns:minmax(0,1fr) 30px;display:grid}.project-row:last-child,.item-list .project-row>button{border-bottom:0}.project-row .project-delete{color:var(--muted);place-items:center;padding:0;font-size:18px;display:grid}.project-row .project-delete:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.item-list button{border:0;border-bottom:1px solid color-mix(in srgb, var(--border) 48%, transparent);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:0;width:100%;min-height:30px;padding:6px 9px;display:block;position:relative;overflow:hidden}.item-list button:last-child{border-bottom:0}.item-list button:hover{background:color-mix(in srgb, var(--accent-soft) 62%, transparent)}.item-list button[aria-selected=true],.item-list button[aria-current=true]{color:var(--text);background:var(--accent-soft);font-weight:650}.item-list button[aria-selected=true]:before,.item-list button[aria-current=true]:before{inset-block:5px;content:"";background:var(--accent);width:2px;position:absolute;left:0}.math-script{font-size:.72em;line-height:0}.math-script.sub{vertical-align:sub}.math-script.sup{vertical-align:super}.math-overbar{text-decoration:overline}.empty-note{padding:0 8px}.version{margin:8px 0 0;font-size:11px}.editor{background:var(--bg);flex-direction:column;grid-area:editor;min-width:0;min-height:0;padding:14px;display:flex}.editor-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px;display:flex}.editor-heading .eyebrow{flex:none;margin:0}.title-button{max-width:100%;min-height:auto;font-family:var(--display-font);letter-spacing:-.025em;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;order:-1;padding:1px 0;font-size:21px;font-weight:730;overflow:hidden}.title-button:hover:not(:disabled){color:var(--accent);background:0 0}.tool-buttons{background:color-mix(in srgb, var(--panel) 76%, transparent);border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);margin-bottom:10px;padding:3px}.tool-buttons button{background:0 0;border-color:#0000;flex:1}.tool-buttons button.active{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 20%, transparent);font-weight:700}.annotation-tools{flex:1;position:relative}.annotation-tools summary{cursor:pointer;text-align:center;padding:9px 12px;list-style:none}.annotation-tools summary::-webkit-details-marker{display:none}.annotation-menu{z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:130px;box-shadow:var(--shadow);padding:4px;display:grid;position:absolute;top:100%;right:0}.annotation-menu button{text-align:left}.canvas-stage{background-color:var(--canvas);background-image:var(--stage-pattern);border:1px solid var(--border);border-radius:var(--panel-radius);background-size:24px 24px;flex:1;place-items:center;min-height:300px;padding:20px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff14;container-type:size}#diagram-canvas{aspect-ratio:3/2;width:min(100%,150cqh);max-width:1080px;height:auto;box-shadow:var(--canvas-shadow);touch-action:none;-webkit-user-select:none;user-select:none;background:#fff;display:block}#diagram-canvas text{font-kerning:none;font-variant-ligatures:none;font-family:FDS Serif,serif}#diagram-canvas .handle{fill:#fff;stroke:#8493a5;stroke-width:2px;vector-effect:non-scaling-stroke}#diagram-canvas .handle.selected{stroke:#087f91;stroke-width:3px}#diagram-canvas .handle.connecting{stroke:#d89422;stroke-width:3px}#diagram-canvas .edge-selection{fill:none;stroke:#087f91;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}#diagram-canvas .edge-selection.halo{stroke-width:15px;opacity:.18}#diagram-canvas .edge-selection.rim{stroke-width:6px;opacity:.55}#diagram-canvas .hit{fill:#0000;stroke:#0000;cursor:pointer}#diagram-canvas .hit-edge{fill:none;stroke-width:15px}#diagram-canvas .hit-label{cursor:grab}#diagram-canvas .hit-label:active,#diagram-canvas .hit-vertex:active{cursor:grabbing}.hint{min-height:18px;color:var(--muted);margin:8px 0 0;font-size:12px}.inspector{flex-direction:column;grid-area:inspector;min-height:0;display:flex;overflow:hidden}.inspector section{padding:14px}.selection-section{flex:1;min-height:0;overflow-y:auto}.figure-section{border-top:1px solid var(--border);flex:none;overflow:visible}.figure-section[hidden]{display:none}.inspector h2{margin:0 0 11px}.selection-section h2{color:var(--text);font-family:var(--display-font);letter-spacing:-.015em;text-transform:none;font-size:17px}.figure-section h2{color:var(--muted);letter-spacing:.105em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:750}.inspector h3{color:var(--muted);letter-spacing:.105em;text-transform:uppercase;margin:0 0 11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:750}.tool-note{color:var(--muted);line-height:1.5}.inspector hr{margin:14px 0 11px}.field{color:var(--muted);letter-spacing:.01em;gap:5px;margin:9px 0;font-size:11px;font-weight:620;display:grid}.field input,.field select{width:100%;height:34px;color:var(--text);padding:5px 8px}.check{align-items:center;gap:8px;margin:9px 0;display:flex}input[type=checkbox]{accent-color:var(--accent)}.inspector .danger{width:100%;color:var(--danger);margin-top:9px}.inspector .danger:hover{border-color:var(--danger)}.dialog-actions .danger{color:var(--danger);border-color:var(--danger)}.dialog-actions .danger:hover{color:var(--accent-ink);background:var(--danger)}.color-row{grid-template-columns:1fr 40px;align-items:end;gap:7px;display:grid}.color-row input[type=color]{width:40px;height:34px;padding:2px}.statusbar{z-index:10;min-height:30px;color:var(--muted);background:var(--panel);border-top:1px solid var(--border);letter-spacing:.025em;flex:none;justify-content:space-between;padding:6px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;display:flex;position:relative}.statusbar a,.intro a{color:inherit}dialog{width:min(440px,100vw - 24px);color:var(--text);background:var(--panel-strong);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);padding:0;box-shadow:0 24px 70px #00000059}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08111e94}dialog form{padding:20px}dialog h2{font-family:var(--display-font);margin:2px 0 0;font-size:21px}dialog .eyebrow{margin:0}.dialog-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:15px;display:flex}.icon-button{min-width:32px;padding:2px 8px;font-size:21px;line-height:1}.dialog-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dialog-actions{justify-content:flex-end;margin-top:16px}.large-dialog{width:min(820px,100vw - 24px)}#latex-source{resize:vertical;width:100%;height:min(52vh,500px);padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.45}.message-body{white-space:pre-line;line-height:1.5}.muted{color:var(--muted)}#toast{z-index:100;color:#fff;border-radius:var(--radius);opacity:0;pointer-events:none;background:#9e3131;max-width:min(390px,100vw - 36px);padding:10px 13px;transition:opacity .15s,transform .15s;position:fixed;bottom:46px;right:18px;transform:translateY(8px);box-shadow:0 8px 24px #0000003d}#toast.visible{opacity:1;transform:translateY(0)}#storage-warning{color:#422d00;background:#fff2bc;margin:0;padding:10px 20px;font-size:14px}.intro{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=1100px){.appbar-leading{gap:10px}.brand-copy{display:none}}@media (width<=1000px){.workspace{--library-width:190px;--inspector-width:240px;grid-template-columns:var(--library-width) 6px minmax(330px, 1fr) 6px var(--inspector-width)}.canvas-stage{padding:16px}}@media (width<=780px){#app{height:auto;min-height:100dvh;overflow:visible}.appbar{flex-wrap:wrap;gap:7px;position:sticky;top:0}.appbar-leading{justify-content:space-between;width:100%}.brand-copy{display:grid}.menus{justify-content:flex-end}.menu-panel{min-width:0;position:fixed;inset:96px 8px auto}.file-controls{width:100%}.file-controls button{flex:1}.workspace{flex:none;grid-template-columns:1fr;grid-template-areas:"editor""library""inspector";min-height:0;overflow:visible}.sidebar-resizer{display:none}.editor{min-height:650px}.library,.inspector{border:0;border-top:1px solid var(--border);border-radius:0}.library{max-height:520px}.inspector{min-height:510px}.selection-section{min-height:270px}.statusbar{position:sticky;bottom:0}}@media (width<=560px){.brand-copy{display:none}.menus{flex:1;justify-content:space-between}}@media (width<=430px){.menu>summary{min-width:auto;padding-inline:6px}.editor{min-height:540px}.canvas-stage{min-height:245px;padding:8px}.dialog-grid{grid-template-columns:1fr}.dialog-actions{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
