:root{--tech-font:"IBM Plex Mono", ui-monospace, monospace;--tech-sans:"IBM Plex Sans", system-ui, sans-serif;--hand-font:"Caveat", cursive;--paper:#efe4cb;--paper-grain:#785a320d;--line:#2c1f15;--line-soft:#6b5945;--accent:#9b3a3a;--grid-major:#46321e14;--grid-minor:#46321e0a;--sheet-shadow:0 30px 60px -20px #3c281459, 0 6px 16px #3c28141f;--tool-bg:#2a2017;--tool-fg:#efe4cb;--tool-line:#efe4cb26;--sw-thin:.35px;--sw-med:.9px;--sw-thick:1.4px}:root[data-paper=graph]{--paper:#fbfbf6;--paper-grain:#28507805;--line:#1a3554;--line-soft:#527799;--accent:#c63a2b;--grid-major:#3c6ea040;--grid-minor:#3c6ea01f;--sheet-shadow:0 30px 50px -20px #14325a40, 0 4px 14px #14325a14}:root[data-paper=dark]{--paper:#0c1018;--paper-grain:#aadcff04;--line:#cfe6ff;--line-soft:#6f8eaf;--accent:#ffb547;--grid-major:#96c8f01f;--grid-minor:#96c8f00e;--sheet-shadow:0 30px 60px -20px #000c, 0 6px 16px #0006;--tool-bg:#050810;--tool-fg:#cfe6ff;--tool-line:#cfe6ff26}:root[data-paper=blueprint]{--paper:#143659;--paper-grain:#ffffff0a;--line:#f4ead1;--line-soft:#9bb4d4;--accent:#ffb547;--grid-major:#ffffff24;--grid-minor:#fff1;--sheet-shadow:0 30px 60px -20px #081e3ce6, 0 6px 16px #081e3c66;--tool-bg:#08172a;--tool-fg:#f4ead1;--tool-line:#f4ead12e}:root[data-stroke=thin]{--sw-thin:.35px;--sw-med:.8px;--sw-thick:1.4px}:root[data-stroke=medium]{--sw-thin:.6px;--sw-med:1.4px;--sw-thick:2.2px}:root[data-stroke=thick]{--sw-thin:.9px;--sw-med:1.9px;--sw-thick:3px}:root[data-hand=technical]{--letter-font:var(--tech-font);--letter-size:10px;--letter-weight:400;--letter-tracking:.04em}:root[data-hand=caveat]{--letter-font:"Caveat", cursive;--letter-size:13px;--letter-weight:500;--letter-tracking:.01em}:root[data-hand=architect]{--letter-font:"Architects Daughter", cursive;--letter-size:12px;--letter-weight:400;--letter-tracking:0}:root.hide-hidden .edge-hidden,:root.hide-dims .dims-lines,:root.hide-dims .dim-overlay,:root.hide-annot .vp-axes,:root.hide-annot .corner-mark{display:none}*{box-sizing:border-box}html,body{height:100%}body{font-family:var(--tech-sans);color:var(--line);background:radial-gradient(circle at 20% 10%,#4a3a26 0%,#2a1f14 60%,#15110a 100%);grid-template-columns:1fr 280px;margin:0;display:grid;overflow:hidden}:root[data-paper=graph] body{background:radial-gradient(circle at 20% 10%,#b9c4d1 0%,#6c7a8c 60%,#38424f 100%)}:root[data-paper=dark] body{background:radial-gradient(circle at 30% 10%,#1a2230 0%,#0a0d14 70%,#050709 100%)}:root[data-paper=blueprint] body{background:radial-gradient(circle at 20% 10%,#1c3852 0%,#0a1a2c 60%,#050d18 100%)}#root{display:contents}.board{justify-content:center;align-items:center;min-width:0;padding:22px;display:flex;position:relative;overflow:hidden}.sheet{aspect-ratio:297/210;background:var(--paper);width:100%;max-width:1280px;box-shadow:var(--sheet-shadow);border-radius:2px;grid-template-rows:1fr 116px;display:grid;position:relative;overflow:hidden}.sheet:before{content:"";pointer-events:none;background:repeating-linear-gradient(0deg, var(--grid-minor) 0 1px, transparent 1px 18.9px), repeating-linear-gradient(90deg, var(--grid-minor) 0 1px, transparent 1px 18.9px), repeating-linear-gradient(0deg, var(--grid-major) 0 1px, transparent 1px 94.5px), repeating-linear-gradient(90deg, var(--grid-major) 0 1px, transparent 1px 94.5px);mix-blend-mode:multiply;position:absolute;inset:0}:root[data-paper=vellum] .sheet:before{background:radial-gradient(ellipse at 20% 30%, var(--paper-grain), transparent 70%), radial-gradient(ellipse at 80% 70%, var(--paper-grain), transparent 70%), repeating-linear-gradient(2deg, transparent 0 32px, #785a3204 32px 33px), repeating-linear-gradient(-3deg, transparent 0 48px, #785a3205 48px 49px)}:root[data-paper=dark] .sheet:before{mix-blend-mode:screen}.sheet:after{content:"";border:1px solid var(--line);pointer-events:none;opacity:.8;border-radius:1px;position:absolute;inset:12px}.corner-mark{pointer-events:none;width:18px;height:18px;position:absolute}.corner-mark:before,.corner-mark:after{content:"";background:var(--line);position:absolute}.corner-mark:before{width:18px;height:1px;top:0;left:0}.corner-mark:after{width:1px;height:18px;top:0;left:0}.cm-tl{top:12px;left:12px}.cm-tr{top:12px;right:12px;transform:scaleX(-1)}.cm-bl{bottom:128px;left:12px;transform:scaleY(-1)}.cm-br{bottom:128px;right:12px;transform:scale(-1)}.grid{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:0;min-height:0;padding:28px;display:grid;position:relative}.viewport{border:1px dashed var(--line-soft);cursor:default;flex-direction:column;min-width:0;min-height:0;margin:-.5px;padding:14px 18px 18px;display:flex;position:relative}.viewport:first-child{border-bottom:none;border-right:none}.viewport:nth-child(2){border-bottom:none}.viewport:nth-child(3){border-right:none}.vp-label{font-family:var(--tech-font);letter-spacing:.14em;color:var(--line);border-bottom:1px solid var(--line-soft);align-items:baseline;gap:10px;margin-bottom:4px;padding:0 0 6px;font-size:10px;font-weight:500;display:flex}.vp-axes{color:var(--line-soft);letter-spacing:.12em;font-size:9px}.vp-stage{flex:1;min-height:0;display:flex;position:relative}.vp-svg{width:100%;height:100%;min-height:0;overflow:visible}.dim-overlay{pointer-events:none;position:absolute;inset:0}.dim-overlay>*{pointer-events:auto}.dim-value,.dim-note{font-family:var(--letter-font);font-size:var(--letter-size);font-weight:var(--letter-weight);letter-spacing:var(--letter-tracking);color:var(--line);white-space:nowrap;background:var(--paper);border-radius:2px;padding:0 4px;line-height:1;position:absolute;transform:translate(-50%,-50%)}.dim-value{text-align:center;min-width:28px}.dim-note{transform:translateY(-50%)}.dim-note .note-pre,.dim-note .note-post{display:inline-block}.dim-input{text-align:center;min-width:1.5em;font:inherit;color:inherit;letter-spacing:inherit;cursor:text;background:0 0;border:none;border-radius:2px;outline:none;margin:0;padding:0 2px;display:inline-block}.dim-input:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}.dim-input:focus{background:color-mix(in srgb, var(--accent) 22%, var(--paper));outline:1px dashed var(--accent);outline-offset:1px}.dim-note .dim-input{text-align:left}.edge-visible{fill:none;stroke:var(--line);stroke-width:var(--sw-med);stroke-linecap:square;vector-effect:non-scaling-stroke;cursor:pointer}.edge-visible.selected{stroke:var(--accent);stroke-width:calc(var(--sw-med) * 1.6)}.edge-hidden{fill:none;stroke:var(--line);stroke-width:var(--sw-thin);stroke-dasharray:2 1.5;vector-effect:non-scaling-stroke;opacity:.85}.edge-center{stroke:var(--accent);stroke-width:var(--sw-thin);stroke-dasharray:4 1 .8 1;vector-effect:non-scaling-stroke;opacity:.9}.dim-ext,.dim-line,.dim-leader{fill:none;stroke:var(--line-soft);stroke-width:var(--sw-thin);vector-effect:non-scaling-stroke}.dim-line{stroke:var(--line)}.viewport svg .dim-line{marker-start:url(#arr);marker-end:url(#arr)}.iso-fit{perspective:none;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.iso-stage{transform-style:preserve-3d;transform-origin:50%;position:relative}.iso-world{transform-style:preserve-3d;position:relative}.iso-box{transform-style:preserve-3d;position:absolute;top:0;left:0}.iso-box .face{background:var(--paper);border:1px solid var(--line);cursor:pointer;transform-origin:0 0;position:absolute;top:0;left:0}:root[data-stroke=medium] .iso-box .face{border-width:1.4px}:root[data-stroke=thick] .iso-box .face{border-width:1.8px}.iso-box .face-top{background:color-mix(in srgb, var(--paper) 75%, white 25%)}.iso-box .face-bottom{background:color-mix(in srgb, var(--paper) 55%, var(--line) 45%)}.iso-box .face-front{background:color-mix(in srgb, var(--paper) 85%, var(--line) 15%)}.iso-box .face-back{background:color-mix(in srgb, var(--paper) 65%, var(--line) 35%)}.iso-box .face-left{background:color-mix(in srgb, var(--paper) 80%, var(--line) 20%)}.iso-box .face-right{background:color-mix(in srgb, var(--paper) 90%, var(--line) 10%)}:root[data-paper=dark] .iso-box .face-top{background:color-mix(in srgb, var(--paper) 75%, var(--line) 8%)}:root[data-paper=dark] .iso-box .face-bottom{background:#06090f}.iso-box.selected-host .face{outline:1px solid var(--accent)}.iso-hole{background:color-mix(in srgb, var(--line) 80%, transparent 20%);border:1px solid var(--line);transform-origin:0 0;pointer-events:auto;cursor:pointer;border-radius:50%;position:absolute;top:0;left:0}:root[data-paper=dark] .iso-hole{background:#06090f}.iso-hole.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.title-block{border:1px solid var(--line);border-collapse:collapse;font-family:var(--tech-font);color:var(--line);table-layout:fixed;background:0 0;width:calc(100% - 60px);margin:0 30px 22px;font-size:10px}.title-block td{border:1px solid var(--line);vertical-align:top;text-align:left;padding:4px 8px 5px;position:relative}.title-block .tb-label{text-transform:uppercase;letter-spacing:.14em;color:var(--line-soft);margin-bottom:2px;font-size:8px;display:block}.title-block .tb-value{font-family:var(--letter-font);font-size:var(--letter-size);font-weight:var(--letter-weight);color:var(--line);background:0 0;border:none;outline:none;width:100%;padding:0;line-height:1.1}.title-block .tb-value:focus{background:color-mix(in srgb, var(--accent) 10%, transparent)}.tb-logo{font-family:var(--tech-font);text-align:center;vertical-align:middle!important;padding:6px 8px!important}.tb-logo .logo-mark{letter-spacing:.18em;color:var(--line);font-size:12px;font-weight:600}.tb-logo small{letter-spacing:.18em;color:var(--line-soft);text-transform:lowercase;margin-top:3px;font-size:8px;font-weight:300;display:block}.proj-symbol{letter-spacing:.18em;color:var(--line-soft);align-items:center;gap:5px;margin-top:7px;font-size:7.5px;display:inline-flex}.proj-symbol svg{display:block}.sidebar{background:var(--tool-bg);color:var(--tool-fg);font-family:var(--tech-font);border-left:1px solid #000;flex-direction:column;font-size:11px;display:flex;overflow:auto}.sidebar h2,.sidebar .sb-section>summary{letter-spacing:.2em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 70%, transparent);border-bottom:1px solid var(--tool-line);justify-content:space-between;align-items:baseline;margin:18px 16px 8px;padding-bottom:6px;font-size:10px;font-weight:500;display:flex}.sidebar h2 small,.sidebar .sb-section>summary small{color:color-mix(in srgb, var(--tool-fg) 40%, transparent);letter-spacing:.1em;font-size:9px}.sidebar .sb-section{margin:0}.sidebar .sb-section>summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.sidebar .sb-section>summary::-webkit-details-marker{display:none}.sidebar .sb-section>summary:before{content:"▾";width:10px;color:color-mix(in srgb, var(--tool-fg) 55%, transparent);margin-right:6px;font-size:8px;transition:transform .12s;display:inline-block}.sidebar .sb-section:not([open])>summary:before{transform:rotate(-90deg)}.sidebar .sb-section>summary:hover{color:var(--tool-fg)}.sidebar .sb-section>summary .sb-title{flex:1}.sb-meta{border:1px solid var(--tool-line);font-family:var(--tech-font);border-radius:2px;grid-template-columns:auto 1fr;gap:4px 10px;margin:14px 16px 0;padding:8px 10px;font-size:10px;display:grid}.sb-meta .k{color:color-mix(in srgb, var(--tool-fg) 50%, transparent);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.sb-meta .v{color:var(--tool-fg)}.units-row{border:1px solid var(--tool-line);border-radius:2px;gap:0;margin:8px 16px 0;display:flex;overflow:hidden}.units-row label{text-align:center;cursor:pointer;letter-spacing:.12em;color:color-mix(in srgb, var(--tool-fg) 70%, transparent);border-right:1px solid var(--tool-line);flex:1;padding:5px 0;font-size:10px;position:relative}.units-row label:last-child{border-right:none}.units-row input{opacity:0;pointer-events:none;position:absolute}.units-row label:has(input:checked){background:var(--tool-fg);color:var(--tool-bg)}.part-tree{max-height:220px;margin:0;padding:0 8px;list-style:none;overflow:auto}.tree-item .tree-row{width:100%;color:var(--tool-fg);font-family:var(--tech-font);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:2px;grid-template-columns:22px 1fr auto;align-items:center;gap:6px;padding:5px 8px;font-size:11px;display:grid}.tree-item .tree-row:hover{background:color-mix(in srgb, var(--tool-fg) 8%, transparent)}.tree-item.selected .tree-row{background:color-mix(in srgb, var(--accent) 30%, transparent);color:var(--tool-fg)}.tree-icon{color:color-mix(in srgb, var(--tool-fg) 70%, transparent);font-size:13px;line-height:1}.tree-type{color:color-mix(in srgb, var(--tool-fg) 40%, transparent);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.add-row{border-bottom:1px solid var(--tool-line);flex-wrap:wrap;gap:6px;padding:6px 16px 12px;display:flex}.add-row.add-row-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.add-row button{font-family:var(--tech-font);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 80%, transparent);border:1px dashed var(--tool-line);cursor:pointer;background:0 0;border-radius:2px;flex:1;padding:6px 0;font-size:10px}.add-row button:hover{background:color-mix(in srgb, var(--tool-fg) 6%, transparent);color:var(--tool-fg);border-style:solid}.export-row{border-bottom:1px solid var(--tool-line);padding:0 16px 12px}.export-btn{width:100%;font-family:var(--tech-font);letter-spacing:.14em;text-transform:uppercase;background:var(--tool-fg);color:var(--tool-bg);border:1px solid var(--tool-fg);cursor:pointer;border-radius:2px;padding:8px 10px;font-size:10px}.export-btn:hover{background:color-mix(in srgb, var(--tool-fg) 88%, var(--accent) 12%)}.export-info{font-family:var(--tech-font);color:color-mix(in srgb, var(--tool-fg) 70%, transparent);margin-top:8px;font-size:10px}.export-warn{color:var(--accent);margin-top:4px;line-height:1.3}.prop-panel{flex:1;padding:0 16px 16px;overflow:auto}.prop-empty{text-align:center;color:color-mix(in srgb, var(--tool-fg) 40%, transparent);font-family:var(--tech-font);margin-top:30px;padding:0 16px;font-size:10px;line-height:1.5}.prop-empty-key{opacity:.6;margin-bottom:8px;font-size:28px}.prop-head{border-bottom:1px solid var(--tool-line);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin:12px 0 10px;padding-bottom:8px;display:grid}.prop-tag{font-family:var(--tech-font);letter-spacing:.15em;border:1px solid var(--tool-line);color:color-mix(in srgb, var(--tool-fg) 70%, transparent);border-radius:1px;padding:2px 6px;font-size:9px}.prop-name{font-family:var(--tech-font);color:var(--tool-fg);background:0 0;border:none;border-bottom:1px solid #0000;outline:none;font-size:12px}.prop-name:focus{border-bottom-color:var(--tool-fg)}.prop-del{border:1px solid var(--tool-line);color:color-mix(in srgb, var(--tool-fg) 60%, transparent);cursor:pointer;background:0 0;border-radius:2px;width:22px;height:22px;font-size:11px}.prop-del:hover{color:var(--accent);border-color:var(--accent)}.prop-panel fieldset{border:1px solid var(--tool-line);border-radius:2px;margin:0 0 10px;padding:8px 10px 10px}.prop-panel fieldset legend{font-family:var(--tech-font);letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 60%, transparent);padding:0 4px;font-size:9px}.prop{grid-template-columns:20px 1fr;align-items:center;gap:8px;margin:4px 0;display:grid}.prop-label{font-family:var(--tech-font);color:color-mix(in srgb, var(--tool-fg) 70%, transparent);font-size:10px}.prop-controls{grid-template-columns:1fr 56px;align-items:center;gap:6px;display:grid}.prop-controls input[type=range]{appearance:none;background:0 0;width:100%;height:18px}.prop-controls input[type=range]::-webkit-slider-runnable-track{background:var(--tool-line);height:1px}.prop-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--tool-fg);cursor:ew-resize;border-radius:1px;width:10px;height:14px;margin-top:-7px}.prop-controls input[type=number],.prop-controls select{border:1px solid var(--tool-line);color:var(--tool-fg);font-family:var(--tech-font);background:0 0;border-radius:2px;outline:none;padding:2px 4px;font-size:10px}.prop-controls input[type=number]:focus,.prop-controls select:focus{border-color:var(--tool-fg)}.tweaks-toggle{z-index:49;background:var(--tool-bg);color:var(--tool-fg);border:1px solid var(--tool-line);font-family:var(--tech-font);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;border-radius:2px;padding:6px 10px;font-size:10px;position:fixed;bottom:18px;right:298px}.tweaks-toggle:hover{background:color-mix(in srgb, var(--tool-fg) 8%, var(--tool-bg))}.tweaks-toggle.open{display:none}.tweaks-panel{background:var(--tool-bg);width:280px;color:var(--tool-fg);border:1px solid var(--tool-line);font-family:var(--tech-font);opacity:0;pointer-events:none;z-index:50;border-radius:4px;font-size:11px;transition:opacity .15s,transform .15s;position:fixed;bottom:18px;right:298px;transform:translateY(20px);box-shadow:0 10px 30px #0006}.tweaks-panel.open{opacity:1;pointer-events:auto;transform:translateY(0)}.tw-head{border-bottom:1px solid var(--tool-line);letter-spacing:.15em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:8px 12px;font-size:10px;display:flex}.tw-close{color:color-mix(in srgb, var(--tool-fg) 60%, transparent);cursor:pointer;background:0 0;border:none;font-size:13px}.tw-section{border-bottom:1px solid var(--tool-line);padding:10px 12px}.tw-section:last-child{border-bottom:none}.tw-section h4{letter-spacing:.15em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 60%, transparent);margin:0 0 6px;font-size:9px;font-weight:500}.tw-radio{border:1px solid var(--tool-line);border-radius:2px;display:flex;overflow:hidden}.tw-radio-grid{grid-template-columns:1fr 1fr;gap:0;display:grid}.tw-radio-grid button:nth-child(2n){border-right:none}.tw-radio-grid button:nth-child(-n+2){border-bottom:1px solid var(--tool-line)}.tw-radio button{color:color-mix(in srgb, var(--tool-fg) 70%, transparent);border:none;border-right:1px solid var(--tool-line);font-family:var(--tech-font);letter-spacing:.1em;cursor:pointer;text-transform:uppercase;background:0 0;flex:1;padding:5px 0;font-size:10px}.tw-radio button:last-child{border-right:none}.tw-radio button.active{background:var(--tool-fg);color:var(--tool-bg)}.tw-tog{cursor:pointer;align-items:center;gap:8px;margin:4px 0;font-size:11px;display:flex}.tw-tog input{accent-color:var(--accent)}.tw-slider{margin:6px 0;font-size:10px;display:block}.tw-slider span{color:color-mix(in srgb, var(--tool-fg) 70%, transparent);justify-content:space-between;display:flex}.tw-slider input{width:100%}.signin{height:100vh;font-family:var(--tech-font);color:var(--tool-fg);grid-column:1/-1;justify-content:center;align-items:center;display:flex}.signin-card{background:var(--tool-bg);border:1px solid var(--tool-line);text-align:center;border-radius:6px;max-width:380px;padding:36px 44px;box-shadow:0 12px 40px #00000080}.signin-logo{font-family:var(--letter-font);margin-bottom:4px;font-size:28px;font-weight:700}.signin-tagline{letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 55%, transparent);margin:0 0 26px;font-size:11px}.signin-btn{padding:10px 22px;font-size:12px;text-decoration:none;display:inline-block}.signin-status{letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 55%, transparent);font-size:11px}.signin-foot{letter-spacing:.08em;color:color-mix(in srgb, var(--tool-fg) 45%, transparent);margin-top:22px;font-size:10px;line-height:1.5}.signin-divider{letter-spacing:.2em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 40%, transparent);align-items:center;gap:10px;margin:16px 0 14px;font-size:9px;display:flex}.signin-divider:before,.signin-divider:after{content:"";background:var(--tool-line);flex:1;height:1px}.signin-guest{flex-direction:column;align-items:stretch;gap:8px;display:flex}.signin-input{background:color-mix(in srgb, var(--tool-bg) 60%, #000 40%);border:1px solid var(--tool-line);color:var(--tool-fg);font-family:var(--tech-font);text-align:center;border-radius:3px;padding:9px 12px;font-size:12px}.signin-input:focus{outline:1px solid var(--accent);outline-offset:1px}.signin-btn-ghost{padding:9px 18px;font-size:11px}.signin-error{color:#f0a0a0;margin:10px 0 0;font-size:11px}.home-user{border:1px solid var(--tool-line);background:color-mix(in srgb, var(--tool-bg) 50%, #000 50%);border-radius:4px;align-items:center;gap:10px;margin:12px 12px 0;padding:12px 16px;display:flex}.home-avatar{border:1px solid var(--tool-line);border-radius:50%;width:32px;height:32px}.home-user-meta{flex:1;min-width:0}.home-user-name{font-family:var(--letter-font);color:var(--tool-fg);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.home-user-sub{letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 50%, transparent);align-items:center;gap:6px;font-size:10px;display:flex}.sync-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;display:inline-block}.sync-dot.sync-saving{background:#d8a82a;animation:1s infinite sync-pulse}.sync-dot.sync-error{background:#d35454}@keyframes sync-pulse{0%,to{opacity:1}50%{opacity:.35}}.sync-pill{letter-spacing:.1em;text-transform:uppercase;background:color-mix(in srgb, var(--tool-fg) 8%, transparent);color:color-mix(in srgb, var(--tool-fg) 65%, transparent);border:1px solid var(--tool-line);border-radius:11px;align-items:center;gap:6px;padding:4px 9px;font-size:10px;display:inline-flex}.sync-pill.sync-error{color:#f0a0a0}.home{height:100vh;color:var(--tool-fg);font-family:var(--tech-font);grid-column:1/-1;grid-template-columns:280px 1fr;display:grid;overflow:hidden}.home-sidebar{background:var(--tool-bg);border-right:1px solid #000;flex-direction:column;padding-bottom:18px;display:flex;overflow:hidden}.home-brand{border-bottom:1px solid var(--tool-line);padding:22px 18px 18px}.home-logo{font-family:var(--letter-font);color:var(--tool-fg);letter-spacing:.02em;font-size:22px;font-weight:700}.home-brand small{color:color-mix(in srgb, var(--tool-fg) 50%, transparent);letter-spacing:.12em;text-transform:uppercase;font-size:10px}.home-section-head{letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 65%, transparent);justify-content:space-between;align-items:center;padding:14px 16px 8px;font-size:10px;display:flex}.home-section-actions{gap:6px;display:inline-flex}.ghost-btn{color:var(--tool-fg);border:1px solid var(--tool-line);font-family:var(--tech-font);letter-spacing:.08em;cursor:pointer;text-transform:uppercase;background:0 0;border-radius:3px;padding:4px 8px;font-size:10px}.ghost-btn:hover{background:color-mix(in srgb, var(--tool-fg) 8%, transparent)}.primary-btn{background:var(--accent);color:#000;font-family:var(--tech-font);letter-spacing:.08em;cursor:pointer;text-transform:uppercase;border:none;border-radius:3px;padding:8px 14px;font-size:11px;font-weight:600}.primary-btn:hover{filter:brightness(1.08)}.icon-btn{color:color-mix(in srgb, var(--tool-fg) 60%, transparent);cursor:pointer;background:0 0;border:none;border-radius:2px;padding:2px 4px;font-size:12px}.icon-btn:hover{color:var(--tool-fg);background:color-mix(in srgb, var(--tool-fg) 10%, transparent)}.project-list{flex:1;margin:0;padding:0 8px;list-style:none;overflow-y:auto}.project-row{border-radius:3px;align-items:center;gap:4px;margin:1px 0;padding:2px 4px;display:flex}.project-row.active{background:color-mix(in srgb, var(--tool-fg) 10%, transparent)}.project-row:hover{background:color-mix(in srgb, var(--tool-fg) 7%, transparent)}.project-name{color:var(--tool-fg);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:6px;font-family:inherit;font-size:12px;display:flex}.proj-dot{background:var(--accent);opacity:.8;border-radius:50%;flex-shrink:0;width:8px;height:8px}.proj-count{color:color-mix(in srgb, var(--tool-fg) 50%, transparent);letter-spacing:.1em;margin-left:auto;font-size:10px}.row-actions{opacity:0;gap:2px;transition:opacity .12s;display:flex}.project-row:hover .row-actions,.project-row.active .row-actions{opacity:1}.empty-note{color:color-mix(in srgb, var(--tool-fg) 45%, transparent);padding:10px 12px;font-size:11px;list-style:none}.home-main{background:color-mix(in srgb, var(--tool-bg) 85%, #000 15%);flex-direction:column;display:flex;overflow:hidden}.home-header{border-bottom:1px solid var(--tool-line);justify-content:space-between;align-items:flex-end;padding:32px 36px 22px;display:flex}.home-title h1{font-family:var(--letter-font);color:var(--tool-fg);letter-spacing:-.01em;margin:0 0 4px;font-size:28px;font-weight:700}.home-title small{color:color-mix(in srgb, var(--tool-fg) 50%, transparent);letter-spacing:.12em;text-transform:uppercase;font-size:11px}.doc-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start;gap:22px;margin:0;padding:26px 36px 50px;list-style:none;display:grid;overflow-y:auto}.doc-card{cursor:pointer;background:var(--tool-bg);border:1px solid var(--tool-line);border-radius:4px;flex-direction:column;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.doc-card:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--tool-line));transform:translateY(-2px);box-shadow:0 8px 24px #00000073}.doc-thumb{aspect-ratio:297/210;background:var(--paper);position:relative;overflow:hidden}.doc-thumb:after{content:"";border:1px solid var(--line);opacity:.5;position:absolute;inset:8px}.doc-thumb-corner{width:10px;height:10px;position:absolute}.doc-thumb-corner:before,.doc-thumb-corner:after{content:"";background:var(--line);position:absolute}.doc-thumb-corner:before{width:10px;height:1px;top:0;left:0}.doc-thumb-corner:after{width:1px;height:10px;top:0;left:0}.doc-thumb-corner.cm-tl{top:8px;left:8px}.doc-thumb-corner.cm-tr{top:8px;right:8px;transform:scaleX(-1)}.doc-thumb-corner.cm-bl{bottom:8px;left:8px;transform:scaleY(-1)}.doc-thumb-corner.cm-br{bottom:8px;right:8px;transform:scale(-1)}.doc-thumb-grid{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:4px;display:grid;position:absolute;inset:18px}.doc-thumb-grid>div{border:1px dashed color-mix(in srgb, var(--line) 35%, transparent);background:repeating-linear-gradient(0deg, color-mix(in srgb, var(--line) 10%, transparent) 0 1px, transparent 1px 6px), repeating-linear-gradient(90deg, color-mix(in srgb, var(--line) 10%, transparent) 0 1px, transparent 1px 6px)}.doc-thumb-badge{font-family:var(--tech-font);letter-spacing:.12em;text-transform:uppercase;color:var(--line);background:color-mix(in srgb, var(--paper) 80%, transparent);border:1px solid var(--line);border-radius:2px;padding:2px 6px;font-size:9px;position:absolute;bottom:10px;right:10px}.doc-meta{border-top:1px solid var(--tool-line);padding:12px 14px}.doc-name{font-family:var(--letter-font);color:var(--tool-fg);margin-bottom:2px;font-size:14px;font-weight:600}.doc-sub{color:color-mix(in srgb, var(--tool-fg) 50%, transparent);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.doc-actions{background:color-mix(in srgb, var(--tool-bg) 80%, transparent);border-radius:3px;padding:2px;position:absolute;top:8px;right:8px}.doc-card:hover .doc-actions{opacity:1}.doc-empty{text-align:center;color:color-mix(in srgb, var(--tool-fg) 55%, transparent);border:1px dashed var(--tool-line);border-radius:4px;flex-direction:column;grid-column:1/-1;align-items:center;gap:14px;padding:40px;display:flex}.missing-doc{color:var(--tool-fg);font-family:var(--tech-font);flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;gap:12px;display:flex}.editor{flex-direction:column;min-width:0;height:100vh;display:flex;overflow:hidden}.editor-bar{background:color-mix(in srgb, var(--tool-bg) 70%, #000 30%);color:var(--tool-fg);font-family:var(--tech-font);border-bottom:1px solid #000;flex-shrink:0;align-items:center;gap:14px;padding:10px 18px;display:flex}.editor-title{align-items:baseline;gap:10px;min-width:0;margin-right:auto;display:flex}.doc-name-btn{color:var(--tool-fg);font-family:var(--letter-font);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;border-radius:2px;max-width:360px;padding:2px 4px;font-size:16px;font-weight:600;overflow:hidden}.doc-name-btn:hover{background:color-mix(in srgb, var(--tool-fg) 10%, transparent)}.editor-title small{letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 50%, transparent);font-size:10px}.editor-bar-actions{align-items:center;gap:10px;display:flex}.editor-bar .tweaks-toggle{margin:0;position:static}.editor-scroll{flex-direction:column;flex:1;gap:24px;padding:18px;display:flex;overflow-y:auto}.sheet-wrap{border:1px solid #0000;border-radius:4px;transition:border-color .15s,box-shadow .15s;position:relative}.sheet-wrap.focused{border-color:color-mix(in srgb, var(--accent) 55%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent)}.sheet-wrap-head{font-family:var(--tech-font);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 55%, transparent);align-items:center;gap:10px;padding:0 6px 8px;font-size:10px;display:flex}.sheet-index{background:color-mix(in srgb, var(--tool-fg) 10%, transparent);border:1px solid var(--tool-line);color:var(--tool-fg);border-radius:2px;padding:2px 7px}.sheet-focus-hint{margin-right:auto}.sheet-wrap.focused .sheet-focus-hint{color:var(--accent)}.editor .board{height:auto;padding:0;display:block}.editor .board .sheet{margin:0 auto}@media (width<=980px){body{grid-template-columns:1fr}.sidebar{display:none}.home{grid-template-columns:1fr}.home-sidebar{display:none}.tweaks-panel,.tweaks-toggle{right:12px}}.iso-cylinder,.iso-sphere{transform-style:preserve-3d;position:absolute;top:0;left:0}.iso-cylinder .face{background:var(--paper);border:1px solid var(--line);cursor:pointer;transform-origin:0 0;position:absolute;top:0;left:0}:root[data-stroke=medium] .iso-cylinder .face{border-width:1.4px}:root[data-stroke=thick] .iso-cylinder .face{border-width:1.8px}.iso-cylinder .face-top{background:color-mix(in srgb, var(--paper) 75%, white 25%)}.iso-cylinder .face-bottom{background:color-mix(in srgb, var(--paper) 55%, var(--line) 45%)}.iso-cylinder .face-front{background:color-mix(in srgb, var(--paper) 85%, var(--line) 15%)}.iso-cylinder .face-back{background:color-mix(in srgb, var(--paper) 65%, var(--line) 35%)}.iso-cylinder .face-left{background:color-mix(in srgb, var(--paper) 80%, var(--line) 20%)}.iso-cylinder .face-right{background:color-mix(in srgb, var(--paper) 90%, var(--line) 10%)}.iso-cylinder .face-cap{border-radius:50%}.iso-cylinder.selected-host .face{outline:1px solid var(--accent)}:root[data-paper=dark] .iso-cylinder .face-bottom{background:#06090f}.iso-sphere{pointer-events:none}.iso-sphere .sph-great{border:1px solid var(--line);background:color-mix(in srgb, var(--paper) 88%, var(--line) 12%);pointer-events:auto;cursor:pointer;transform-origin:50%;border-radius:50%;position:absolute;top:0;left:0}:root[data-stroke=medium] .iso-sphere .sph-great{border-width:1.4px}:root[data-stroke=thick] .iso-sphere .sph-great{border-width:1.8px}.iso-sphere.selected-host .sph-great{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.iso-slot{background:color-mix(in srgb, var(--line) 80%, transparent 20%);border:1px solid var(--line);transform-origin:0 0;pointer-events:auto;cursor:pointer;position:absolute;top:0;left:0}:root[data-paper=dark] .iso-slot{background:#06090f}.iso-slot.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.prop-ops{border-bottom:1px solid var(--tool-line);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 16px 14px;display:flex}.prop-ops button{font-family:var(--tech-font);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 80%, transparent);border:1px solid var(--tool-line);cursor:pointer;background:0 0;border-radius:2px;padding:5px 8px;font-size:9.5px}.prop-ops button:hover{background:color-mix(in srgb, var(--tool-fg) 8%, transparent);color:var(--tool-fg)}.prop-ops-sep{font-family:var(--tech-font);letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 55%, transparent);margin-left:4px;font-size:9px}.json-panel{border-bottom:1px solid var(--tool-line);gap:6px;padding:6px 16px 12px;display:grid}.json-area{resize:vertical;width:100%;min-height:160px;max-height:280px;color:var(--tool-fg);border:1px solid var(--tool-line);font-family:var(--tech-font);white-space:pre;background:#00000059;border-radius:2px;padding:6px 8px;font-size:10.5px;line-height:1.45;overflow:auto}.json-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.json-actions button{font-family:var(--tech-font);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 85%, transparent);border:1px solid var(--tool-line);cursor:pointer;background:0 0;border-radius:2px;padding:4px 10px;font-size:9.5px}.json-actions button:disabled{opacity:.35;cursor:default}.json-actions button:not(:disabled):hover{background:color-mix(in srgb, var(--tool-fg) 8%, transparent);color:var(--tool-fg)}.json-hint{font-family:var(--tech-font);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--tool-fg) 55%, transparent);margin-left:auto;font-size:9px}.json-err{color:var(--accent)}
