*{box-sizing:border-box;margin:0}body{color:var(--ink);background:var(--paper,#fdfbf7);-webkit-font-smoothing:antialiased;font:14px -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;overflow:hidden}:root{--surface:color-mix(in srgb, var(--accent) 8%, var(--paper));--surface-hover:color-mix(in srgb, var(--accent) 14%, var(--paper));--surface-line:color-mix(in srgb, var(--accent) 24%, var(--paper));--z-marquee:5;--z-console:9;--z-chrome:10;--z-panel:15;--z-snap:30}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{color:var(--paper);background:var(--accent)}#toolbar{z-index:var(--z-chrome);grid-template-rows:auto auto;justify-items:start;gap:12px;display:grid;position:fixed;top:20px;left:20px}#toolbar .groups{grid-area:1/1;align-items:flex-start;gap:10px;transition:transform .25s,opacity .2s;display:flex}body:not(.mode-make) .groups[data-mode=make],body.mode-make .groups[data-mode=draw]{opacity:0;pointer-events:none;transform:translate(calc(-100% - 24px))}#toolbar .group{flex-direction:column;gap:10px;display:flex}#toolbar .buttons{grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:10px;display:grid}#toolbar .group:not(:has(button)){display:none}#toolbar .group h3{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 -2px;font-size:9px;font-weight:500}#toolbar .divider{background:#1c19171f;align-self:stretch;width:1px}#toolbar button{background:var(--surface);border:1px solid var(--surface-line);border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:44px;height:44px;padding:0;transition:background .12s,color .12s;display:flex}#toolbar button span{letter-spacing:.01em;font-size:10px;line-height:1}#toolbar button:not(:has(svg)){height:auto;padding:8px 4px}#toolbar button:hover{background:var(--surface-hover)}#toolbar button{position:relative}#toolbar button:after{content:attr(data-tip);z-index:1;width:max-content;max-width:210px;color:var(--paper);text-align:left;opacity:0;pointer-events:none;background:#1c1917eb;border-radius:4px;padding:6px 8px;font-size:11px;line-height:1.35;transition:opacity .1s .35s;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}#toolbar button:hover{z-index:1}#toolbar button:hover:after{opacity:1}#toolbar button.active{color:var(--paper);background:var(--accent-active);border-color:var(--accent-active)}#toolbar button:disabled{color:var(--muted);cursor:not-allowed;background:0 0}#toolbar button:disabled:hover{background:0 0}#hint{max-width:40ch;color:var(--muted);pointer-events:none;grid-area:2/1;font-size:12px}#account{z-index:var(--z-panel);width:44px;height:44px;color:var(--ink);background:var(--surface);border:1px solid var(--surface-line);border-radius:50%;place-items:center;display:grid;position:fixed;top:20px;right:20px}#account:hover{background:var(--surface-hover)}#account-menu{background:var(--surface);border:1px solid var(--surface-line);border-radius:4px;min-width:160px;padding:4px;position:fixed;inset:72px 20px auto auto;overflow:hidden}#account-menu button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:3px;padding:8px 10px;font-size:13px;display:block}#account-menu button:hover{background:var(--surface-hover)}#gate{max-width:min(400px,100vw - 40px);color:var(--ink);background:0 0;border:0;margin:auto;padding:0}#gate[open]{flex-direction:column;display:flex}#gate::backdrop{background:#0006}#gate [hidden]{display:none}.gate-close{color:var(--paper);opacity:.75;text-shadow:0 1px 2px #00000080;background:0 0;border:0;align-self:flex-end;padding:0 2px 4px;font-size:26px;line-height:1}.gate-close:hover{opacity:1}.gate-why{color:var(--paper);text-align:center;text-shadow:0 1px 2px #00000080;margin-bottom:10px;font-size:13px}.gate-why:empty{display:none}.gate-welcome{text-align:center;background:var(--surface);border:1px solid var(--surface-line);border-radius:4px;padding:32px 28px 26px}.gate-note{text-align:center}.gate-note p{color:var(--paper);text-shadow:0 1px 2px #00000080;font-size:13px}.gate-note button{margin-top:14px}.gate-dots{text-align:left;width:3ch;animation:1.4s steps(4,jump-none) infinite gate-dots;display:inline-block}@keyframes gate-dots{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.gate-dots{animation:none}}#gate-form:not(:empty)~.gate-note{display:none}.gate-welcome h1{margin-bottom:8px;font-size:22px;font-weight:600}.gate-welcome p{color:var(--muted);font-size:14px}.gate-buttons{flex-direction:column;gap:10px;margin-top:22px;display:flex}.gate-buttons button,.gate-note button{color:var(--paper);background:var(--accent);border:0;border-radius:2px;padding:10px 18px;font-size:14px}.gate-buttons button:hover,.gate-note button:hover{background:var(--accent-active)}.panel{z-index:var(--z-panel);background:var(--surface);border:1px solid var(--surface-line);border-radius:4px;width:216px;transition:transform .25s;position:fixed;top:76px;right:20px;overflow:hidden;transform:translate(calc(100% + 24px))}.panel.open{transform:none}.panel>header{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--surface-line);padding:10px 12px;font-size:11px}#outliner ul{padding:4px;list-style:none}#outliner li{cursor:default;border-radius:2px;align-items:center;gap:6px;padding:6px;display:flex}#outliner li.selected{background:var(--surface-hover)}#outliner .eye{color:var(--ink);background:0 0;border:0;flex-shrink:0;align-items:center;padding:0;display:flex}#outliner li.hidden .eye{color:var(--line)}#outliner .eye:disabled{cursor:default;opacity:.35}#outliner .marker{width:8px;color:var(--accent);flex-shrink:0;font-weight:600}#outliner .name{cursor:text;flex:1;font-size:13px}#outliner li.entered .name{font-weight:600}#outliner li.hidden .name{color:var(--muted);text-decoration:line-through}#outliner li.reference .name{color:var(--muted);font-style:italic}#outliner .rename{min-width:0;font:inherit;color:var(--ink);border:0;border-bottom:1px solid var(--ink);background:0 0;outline:none;flex:1;padding:1px 0;font-size:13px}#models{width:min(720px,100vw - 40px);max-height:min(80vh,640px);color:var(--ink);background:var(--surface);border:1px solid var(--surface-line);border-radius:4px;flex-direction:column;margin:auto;padding:0;display:flex}#models::backdrop{background:#00000040}#models.dropping{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}#models>header{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--surface-line);align-items:center;gap:8px;padding:10px 12px;font-size:11px;display:flex}.models-where{text-transform:none;opacity:.8;margin-right:auto}#models .close{color:var(--muted);background:0 0;border:0;padding:0 2px;font-size:18px;line-height:1}.models-crumbs{border-bottom:1px solid var(--surface-line);flex-wrap:wrap;align-items:center;gap:4px;padding:8px 12px;display:flex}.models-crumb{font:inherit;color:var(--muted);background:0 0;border:0;border-radius:2px;padding:2px 4px;font-size:12px}.models-crumb:last-of-type{color:var(--ink)}.models-crumb:hover{background:var(--surface-hover)}.models-sep{color:var(--muted);opacity:.5;font-size:12px}.models-crumb-acts{gap:6px;margin-left:auto;display:flex}.models-new-folder,.models-current button{font:inherit;color:var(--muted);border:1px solid var(--surface-line);background:0 0;border-radius:2px;padding:3px 8px;font-size:12px}.models-new-folder:hover,.models-current button:hover:not(:disabled){color:var(--ink);background:var(--surface-hover)}.models-current button:disabled{cursor:not-allowed;opacity:.45}.models-scroll{flex:1;min-height:120px;overflow-y:auto}.models-table{border-collapse:collapse;table-layout:fixed;width:100%}.models-table th:first-child{width:auto}.models-table th:nth-child(2),.models-table th:nth-child(3){width:84px}.models-table th:nth-child(4){width:76px}.models-table th:last-child{width:104px}.models-table thead th{text-align:left;background:var(--surface);border-bottom:1px solid var(--surface-line);padding:0;position:sticky;top:0}.models-sort{width:100%;font:inherit;letter-spacing:.04em;text-align:left;text-transform:uppercase;color:var(--muted);background:0 0;border:0;padding:6px 8px;font-size:11px}.models-sort.on{color:var(--ink)}.models-sort:hover{background:var(--surface-hover)}.models-table th.num .models-sort,.models-table td.num{text-align:right}.models-table tbody td{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;padding:5px 8px;font-size:12px;overflow:hidden}.models-table tbody tr:hover{background:var(--surface-hover)}.models-open-now .models-open{color:var(--accent);font-weight:600}.models-open{width:100%;min-width:0;font:inherit;color:var(--ink);text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:13px;display:flex;overflow:hidden}.models-open span{text-overflow:ellipsis;overflow:hidden}.models-acts{justify-content:flex-end;gap:2px;display:flex}.models-act{color:var(--muted);visibility:hidden;background:0 0;border:0;border-radius:2px;align-items:center;padding:2px;display:flex}tr:hover .models-act,.models-act:focus-visible{visibility:visible}.models-act:hover{color:var(--ink);background:var(--surface)}.models-empty{color:var(--muted);text-align:center;font-size:13px;padding:14px 8px!important}#models>footer{border-top:1px solid var(--surface-line);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.models-row{gap:8px;display:flex}.models-current{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.models-current-what{color:var(--muted);margin-right:auto;font-size:12px}.models-status{color:var(--muted);font-size:11px}.models-status:empty{display:none}.models-name{min-width:0;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--surface-line);border-radius:2px;flex:1;padding:5px 8px;font-size:13px}.models-save{color:var(--paper);background:var(--accent);border:0;border-radius:2px;padding:5px 14px;font-size:13px}#vcb-wrap{z-index:var(--z-chrome);pointer-events:none;transition:opacity .2s;position:fixed;bottom:20px;right:20px}body.mode-make #vcb-wrap{opacity:0}#vcb-label{letter-spacing:.08em;text-align:right;text-transform:uppercase;color:var(--muted);margin-bottom:5px;font-size:9px}#vcb{letter-spacing:.04em;text-align:right;min-width:120px;color:var(--paper);background:var(--ink);border-radius:4px;padding:9px 14px;font-family:ui-monospace,sfmono-regular,SF Mono,menlo,consolas,monospace;font-size:15px}#vcb .caret{color:var(--accent)}#snap{z-index:var(--z-snap);border:2px solid var(--snap);pointer-events:none;width:11px;height:11px;margin:-6px 0 0 -6px;display:none;position:fixed}#snap.midpoint{border:7px solid #0000;border-top-width:0;border-bottom:12px solid var(--snap);width:0;height:0;margin:-6px 0 0 -7px}#snap.edge{transform:rotate(45deg)}#snap.centre{border-radius:50%}#marquee{z-index:var(--z-marquee);background:color-mix(in srgb, var(--accent) 6%, transparent);border:1px solid var(--accent);pointer-events:none;display:none;position:fixed}#marquee.crossing{border-style:dashed}#console{bottom:calc(20px + var(--scrub-height,0px));z-index:var(--z-console);width:min(680px,55vw);color:var(--paper);background:var(--ink);border-radius:4px;flex-direction:column;transition:bottom .25s;display:flex;position:fixed;left:20px}#console header{align-items:center;gap:8px;padding:6px 10px;display:flex}#console .collapse{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:0 0;border:0;flex:1;align-items:center;gap:6px;padding:0;font-size:11px;display:flex}#console .collapse svg{transition:transform .15s}#console.collapsed .collapse svg{transform:rotate(-90deg)}#console .errors{color:var(--paper);background:var(--danger);border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600}#console .errors:empty,#console:not(.collapsed) .errors{display:none}#console .clear{color:var(--muted);background:0 0;border:0;padding:0;font-size:11px}#console .clear:hover,#console .toggle.on{color:var(--paper)}#console .toggle:not(.on){text-decoration:line-through}#console .lines{white-space:pre-wrap;max-height:30vh;padding:0 10px 8px;font:11px/1.55 ui-monospace,monospace;overflow-y:auto}#console.collapsed .lines{display:none}#console .warn{color:#e5c07b}#console .error{color:#e06c75}#console .prompt:before{content:"› ";color:var(--accent)}#console .prompt{border-top:1px solid color-mix(in srgb, var(--paper) 12%, transparent);align-items:center;gap:6px;padding:6px 10px;display:flex}#console.collapsed .prompt{display:none}#console .prompt .gutter{color:var(--accent);font:11px/1.55 ui-monospace,monospace}#console .prompt input{min-width:0;color:var(--paper);background:0 0;border:0;flex:1;padding:0;font:11px/1.55 ui-monospace,monospace}#console .prompt input::placeholder{color:var(--muted)}#console .prompt input:focus{outline:none}#console .prompt input:disabled{color:var(--muted)}#console .prompt button{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid color-mix(in srgb, var(--paper) 20%, transparent);background:0 0;border-radius:2px;padding:2px 8px;font-size:10px}#console .prompt button:hover{color:var(--paper)}#console .prompt.working .gutter{animation:1.1s ease-in-out infinite thinking}#console .prompt.working button{color:var(--paper);border-color:var(--accent)}@keyframes thinking{50%{opacity:.25}}#make{z-index:calc(var(--z-panel) + 1);flex-direction:column;width:280px;display:flex;bottom:20px}#make .panel-body{padding:16px;overflow-y:auto}#make .modes{border:1px solid var(--surface-line);border-radius:2px;grid-template-columns:1fr 1fr;margin-bottom:18px;display:grid;overflow:hidden}#make .modes button{color:var(--muted);background:0 0;border:none;padding:7px;font-size:12px}#make .modes button.active{color:var(--paper);background:var(--accent-active)}#make [data-machine]{display:contents}body:not(.machine-print) #make [data-machine=printer],body.machine-print #make [data-machine=router],body.machine-print #toolbar button[data-machine=router]{display:none}#make h3{border-bottom:1px solid var(--surface-line);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;padding-bottom:8px;font-size:10px;font-weight:600}#make label{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}#make label span{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:10px}#make input:disabled{opacity:.5}#make .field-grid{grid-template-columns:1fr 1fr;gap:0 10px;display:grid}#make input[type=number]{width:100%;color:var(--ink);background:var(--paper);border:1px solid var(--surface-line);border-radius:2px;padding:6px 8px;font-family:ui-monospace,monospace;font-size:13px}#make .apply{width:100%;color:var(--muted);border:1px solid var(--surface-line);background:0 0;border-radius:2px;margin:14px 0 4px;padding:9px;font-size:12px;transition:background .12s,color .12s}#make .apply.pending{color:var(--paper);background:var(--accent-active);border-color:var(--accent-active)}#make .apply:disabled{cursor:default}#make .warn-group ul{color:var(--warn);margin:10px 0;padding-left:16px;font-size:12px}#make .warn-group.notes ul{color:var(--muted)}#make .warn-group:not(:has(li)){display:none}#make .warn-group h3{margin:10px 0 0}#make .reason{color:var(--danger);margin:10px 0;font-size:12px}#make .reason:empty{display:none}#make-warnings li{cursor:pointer}#make-warnings li:hover{text-decoration:underline}#scrub{z-index:var(--z-chrome);background:var(--surface);border:1px solid var(--surface-line);opacity:0;pointer-events:none;border-radius:4px;padding:14px 18px 12px;transition:transform .25s,opacity .2s;position:fixed;bottom:20px;left:20px;right:316px;transform:translateY(10px)}#scrub.open{opacity:1;pointer-events:auto;transform:none}#scrub .track{position:relative}#scrub .ticks{pointer-events:none;position:absolute;inset:0}#scrub .tick{background:var(--surface-line);width:1px;height:9px;margin-top:-4px;position:absolute;top:50%}#scrub .flag{width:14px;height:14px;color:var(--paper);background:var(--warn);pointer-events:auto;border:0;border-radius:50%;margin:-7px 0 0 -7px;padding:0;font-size:10px;line-height:1;position:absolute;top:50%}#scrub input[type=range]{appearance:none;background:var(--surface-line);outline:none;width:100%;height:2px;display:block;position:relative}#scrub input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--ink);cursor:pointer;width:12px;height:12px}#scrub input[type=range]::-moz-range-thumb{background:var(--ink);cursor:pointer;border:0;border-radius:0;width:12px;height:12px}#scrub .readout{color:var(--muted);margin:12px 0 0;font-family:ui-monospace,monospace;font-size:12px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important}}
