:root{color-scheme:dark;font-family:Inter,Avenir,Helvetica Neue,system-ui,sans-serif;color:#f1eadc;background:#080a0b;font-synthesis:none;--ink: #f1eadc;--muted: #a9a496;--brass: #d99b50;--cyan: #76c8d2;--panel: rgba(13, 17, 18, .96);--line: rgba(241, 234, 220, .13)}*{box-sizing:border-box}html,body,#app{width:100%;min-width:900px;height:100%;margin:0;overflow:hidden}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.bench-shell{display:grid;grid-template:84px minmax(0,1fr) 32px / 238px minmax(600px,1fr) 270px;width:100%;height:100dvh;background:radial-gradient(circle at 57% 45%,rgba(118,200,210,.045),transparent 34%),#080a0b}.masthead{z-index:3;grid-column:1 / -1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line);background:#080a0bf2}.identity{display:grid;gap:8px}.office-link,.eyebrow{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.62rem;letter-spacing:.14em;text-decoration:none;text-transform:uppercase}.office-link:hover{color:var(--cyan)}.title-line{display:flex;align-items:center;gap:10px}.title-line h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.35rem;font-weight:600;line-height:1}.title-line p{margin:3px 0 0;color:var(--muted);font-size:.65rem}.instrument-mark{display:block;width:25px;height:25px;border:1px solid var(--brass);border-radius:4px 50% 50%;box-shadow:inset 0 0 0 5px #080a0b,inset 0 0 0 6px #d99b5066;transform:rotate(45deg)}.world-control{display:grid;min-width:230px;gap:5px;text-align:center}.world-control label{color:var(--muted);font:.58rem/1 ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase}select,input[type=text],input[type=number]{width:100%;min-height:34px;padding:6px 9px;border:1px solid var(--line);border-radius:4px;color:var(--ink);background:#111617}.world-control select{text-align:center;border-color:#d99b5073}.document-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px}.document-actions button,.secondary,.view-controls button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:4px;background:#111516;cursor:pointer}.document-actions button:hover,.secondary:hover,.view-controls button:hover{border-color:var(--brass)}.document-actions .save-server{border-color:#76c8d28c;color:#bce8ec;background:#76c8d217}.document-actions .save-live{border-color:#d99b50b8;color:#ffe0a9;background:linear-gradient(180deg,#d99b502e,#d99b5014)}.document-actions .is-saving{opacity:.62;cursor:wait}.save-state{margin-right:7px;color:#88bca6;font:.62rem ui-monospace,monospace}.catalog-panel,.inspector-panel{position:relative;z-index:2;min-height:0;padding:17px 14px;overflow-y:auto;background:var(--panel)}.catalog-panel{grid-column:1;border-right:1px solid var(--line)}.inspector-panel{grid-column:3;border-left:1px solid var(--line)}.panel-heading{display:grid;gap:4px;margin-bottom:12px}.panel-heading strong{font-family:Georgia,serif;font-size:1.05rem;font-weight:500}.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.tool{min-height:60px;border:1px solid var(--line);border-radius:4px;background:#101415;cursor:pointer}.tool:hover{border-color:#76c8d28c}.tool:disabled{opacity:.38;cursor:not-allowed}.tool:disabled:hover{border-color:var(--line)}.tool.active{border-color:var(--brass);color:#ffd99c;background:#d99b501a;box-shadow:inset 0 0 0 1px #d99b501f}.tool-grid .tool{position:relative;display:grid;place-items:center;gap:2px;padding:7px}.tool-grid .tool span{font-size:.68rem}.tool-grid kbd{position:absolute;top:5px;right:6px;color:#676c6a;font:.55rem ui-monospace,monospace}.tool-grid .highway-tool,.tool-grid .wall-tool,.tool-grid .banked-wall-tool{min-height:50px}.component-heading{margin-top:23px}.asset-search{display:grid;gap:5px;margin-bottom:8px}.asset-search span{color:var(--muted);font:.56rem ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.asset-search input{width:100%;min-height:36px;padding:7px 9px;border:1px solid var(--line);border-radius:4px;color:var(--ink);background:#111617}.asset-filters{display:flex;gap:5px;margin:0 -1px 7px;overflow-x:auto;scrollbar-width:thin}.asset-filter{flex:0 0 auto;padding:5px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:#101415;font:.56rem ui-monospace,monospace;cursor:pointer}.asset-filter small{margin-left:3px;color:#6f7471}.asset-filter.active{border-color:#76c8d299;color:#c7f1f3;background:#76c8d21a}.asset-result-count{margin:0 0 9px;color:#727875;font:.55rem ui-monospace,monospace}.component-list{display:grid;gap:7px}.catalog-menu-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.catalog-menu-button{display:flex;align-items:center;justify-content:space-between;min-height:38px;padding:0 8px;border:1px solid var(--line);border-radius:4px;color:#aaa79e;background:#101415;font:.6rem ui-monospace,monospace;cursor:pointer}.catalog-menu-button small{color:#686e6b}.catalog-menu-button:hover{border-color:#76c8d280;color:var(--ink)}.catalog-menu-button.active{border-color:#d99b50b3;color:#ffe0a9;background:#d99b501a}.catalog-flyout{margin-top:2px;padding:6px;border:1px solid var(--line);border-radius:4px;background:#101415b8}.catalog-flyout-heading{display:flex;align-items:baseline;justify-content:space-between;min-height:30px;padding:3px 5px 7px;color:#d6d1c5;font:.62rem ui-monospace,monospace}.catalog-flyout-heading span{color:#777c79;font-size:.54rem}.catalog-subfamily{border:1px solid rgba(241,234,220,.1);border-radius:4px;background:#080a0b5c}.catalog-subfamily summary{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:0 10px;color:#d6d1c5;font:.66rem ui-monospace,monospace;letter-spacing:.04em;cursor:pointer;list-style:none}.catalog-subfamily summary::-webkit-details-marker{display:none}.catalog-subfamily summary:before{content:"›";margin-right:7px;color:var(--brass);transition:transform .16s ease}.catalog-subfamily[open] summary:before{transform:rotate(90deg)}.catalog-subfamily summary span{flex:1}.catalog-subfamily summary small{color:#777c79}.catalog-submenu{display:grid;gap:6px}.catalog-subfamily .catalog-submenu{padding:0 6px 6px}.component-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:9px;min-height:58px;padding:8px;text-align:left}.component-card>span:nth-child(2){display:grid;gap:3px}.component-card strong{font-size:.75rem}.component-card small{color:var(--muted);font-size:.57rem}.component-card em{display:-webkit-box;overflow:hidden;color:#858b87;font: .55rem/1.35 ui-monospace,monospace;-webkit-box-orient:vertical;-webkit-line-clamp:2}.component-glyph{position:relative;display:grid;place-items:center;width:40px;height:40px;overflow:hidden;border:1px solid color-mix(in srgb,var(--component-color),transparent 35%);color:var(--component-color);background:color-mix(in srgb,var(--component-color),transparent 88%);font:600 .85rem Georgia,serif}.component-glyph i{position:relative;z-index:1;font-style:normal}.asset-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.asset-thumb:not(.image-missing) img+i{opacity:0}.asset-thumb.image-missing img{display:none}.empty-list{margin:4px 0;color:var(--muted);font:.62rem/1.45 ui-monospace,monospace}.add-mark{color:#676c6a}.trail-card{display:grid;gap:10px;margin-top:20px;padding:12px;border:1px solid rgba(118,200,210,.18);border-radius:4px;background:#76c8d20b}.trail-card>div{display:flex;align-items:center;gap:7px;font-size:.7rem}.trail-card p{margin:0;color:var(--muted);font-size:.59rem;line-height:1.45}.live-dot{width:7px;height:7px;border-radius:50%;background:#62d29b;box-shadow:0 0 9px #62d29b}.toggle{display:flex;align-items:center;gap:8px;color:#cbc5b9;font-size:.64rem}.toggle input{position:absolute;opacity:0}.toggle span{position:relative;width:30px;height:16px;border-radius:20px;background:#34393a}.toggle span:after{position:absolute;top:3px;left:3px;width:10px;height:10px;content:"";border-radius:50%;background:#8f928f;transition:.12s}.toggle input:checked+span{background:#76c8d266}.toggle input:checked+span:after{left:17px;background:var(--cyan)}.secondary{font-size:.63rem}.view-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:12px}.wall-settings,.wall-editor{display:grid;gap:12px}.wall-settings[hidden],.wall-editor[hidden]{display:none}.wall-joints{display:grid;gap:4px;max-height:190px;overflow-y:auto}.wall-joint-row{display:flex;justify-content:space-between;gap:8px;padding:7px 8px;border:1px solid var(--line);color:var(--ink);background:#101516;font:.6rem ui-monospace,monospace}.wall-joint-row small{color:var(--muted)}.wall-joint-row.active{border-color:var(--cyan);color:#c7f1f3}.maps{grid-column:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;min-width:0;min-height:0;background:#f1eadc1f}.map-panel{position:relative;min-width:0;min-height:0;overflow:hidden;background:#090c0d}.map-panel canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.dev-label-layer{position:absolute;z-index:3;inset:0;overflow:hidden;pointer-events:none}.dev-label{position:absolute;max-width:190px;padding:3px 6px;overflow:hidden;border:1px solid rgba(118,200,210,.5);border-radius:3px;color:#bce8ec;background:#080c0ddb;font:.56rem/1.2 ui-monospace,monospace;text-overflow:ellipsis;white-space:nowrap;transform:translate(-50%,calc(-100% - 16px))}.dev-label:before{content:"DEV · ";color:#6f9da1}.dev-label.selected{border-color:var(--brass);color:#ffe0a9;box-shadow:0 0 0 1px #d99b501f}.map-label{position:absolute;z-index:2;top:13px;left:14px;display:flex;align-items:flex-start;gap:12px;pointer-events:none}.map-label h2{margin:1px 0 0;font-family:Georgia,serif;font-size:1.4rem;font-weight:500}.map-label>span{margin-top:14px;padding:4px 7px;border:1px solid var(--line);border-radius:99px;color:var(--muted);background:#080a0bbf;font:.55rem ui-monospace,monospace}.map-label .craft-scale-key{display:inline-flex;align-items:center;gap:5px;color:#b8c9c9;letter-spacing:.08em;text-transform:uppercase}.craft-scale-key i{width:16px;height:5px;background:linear-gradient(90deg,#ffad3f 0 18%,#36e0ff 18% 28%,#181c27 28%);clip-path:polygon(50% 0,100% 100%,66% 82%,50% 100%,34% 82%,0 100%);filter:drop-shadow(0 0 3px #36e0ff)}.map-hint,.legend{position:absolute;z-index:2;bottom:12px;left:13px;color:#777c79;font:.56rem ui-monospace,monospace;pointer-events:none}.legend{display:flex;gap:12px}.legend span{display:flex;align-items:center;gap:5px}.legend i{display:inline-block;width:15px;height:2px;background:var(--brass)}.legend .open-key{background:#4b5b60}.inspector-empty{display:grid;justify-items:center;gap:9px;margin-top:60px;padding:22px;color:#777c79;text-align:center}.inspector-empty[hidden]{display:none}.inspector-empty span{color:var(--brass);font:2rem Georgia,serif}.inspector-empty p{margin:0;font-size:.7rem;line-height:1.55}#inspector{display:grid;gap:12px}#inspector[hidden]{display:none}#inspector label,.highway-settings label{display:grid;gap:5px;color:var(--muted);font-size:.64rem}.instance-dimensions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid rgba(216,169,93,.28);border-radius:5px;background:#d8a95d0b}.instance-dimensions span{display:grid;gap:3px;padding:8px 7px}.instance-dimensions span+span{border-left:1px solid var(--line)}.instance-dimensions small{color:#777c79;font:.52rem ui-monospace,monospace;text-transform:uppercase}.instance-dimensions strong{color:#e7c887;font:.67rem ui-monospace,monospace;white-space:nowrap}.object-identity{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 10px;padding:9px 11px;border:1px solid #4b625f;background:linear-gradient(135deg,#253735,#1d2928)}.object-identity small{color:#8fa39f;font:.55rem ui-monospace,monospace;text-transform:uppercase}.object-identity strong{grid-row:1 / span 2;grid-column:2;color:#f0cf8b;font:1.05rem ui-monospace,monospace;letter-spacing:.09em}.object-identity span{color:#b8c3c0;font-size:.65rem;text-transform:capitalize}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.yaw-control{display:grid;grid-template-columns:auto 1fr auto;gap:4px}.yaw-control button{border:1px solid var(--line);border-radius:4px;color:#d6cec0;background:#161a1b;cursor:pointer}.property-divider{display:flex;align-items:center;gap:8px;margin:4px 0 0;color:#777c79;font:.58rem ui-monospace,monospace;text-transform:uppercase}.property-divider:after{flex:1;height:1px;content:"";background:var(--line)}input[type=color]{width:100%;height:34px;padding:3px;border:1px solid var(--line);background:#111617}.boolean-field{display:flex!important;grid-template-columns:auto 1fr;align-items:center;min-height:36px;padding:7px 9px;border:1px solid var(--line);border-radius:4px;color:#cbc5b9!important;background:#111617}.boolean-field input{width:16px;height:16px;margin:0 8px 0 0;accent-color:var(--brass)}.instance-actions{display:grid;gap:7px;margin-top:5px}.copy-button,.delete-button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border-radius:4px;cursor:pointer}.copy-button{border:1px solid rgba(118,200,210,.35);color:#bce8ec;background:#76c8d20f}.delete-button{border:1px solid rgba(206,91,77,.35);color:#e39c91;background:#ce5b4d0f}.highway-settings{display:grid;gap:18px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.highway-settings[hidden]{display:none}.highway-settings output{float:right;color:var(--brass)}.highway-settings input{width:100%;accent-color:var(--brass)}.highway-settings p{margin:0;color:var(--muted);font-size:.67rem;line-height:1.55}.highway-editor{display:grid;gap:16px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.highway-editor[hidden]{display:none}.highway-editor label{display:grid;gap:5px;color:var(--muted);font-size:.64rem}.highway-editor output{float:right;color:var(--brass)}.highway-editor input[type=range]{width:100%;accent-color:var(--brass)}.highway-editor p{margin:0;color:var(--muted);font-size:.67rem;line-height:1.55}.save-issues{position:fixed;top:96px;right:286px;left:254px;z-index:6;max-height:46vh;padding:12px 14px;overflow-y:auto;border:1px solid rgba(217,120,90,.55);border-radius:6px;background:#1e0f0cf7;box-shadow:0 14px 40px #0000008c}.save-issues[hidden]{display:none}.save-issues-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.save-issues-head strong{color:#ffb59a;font-family:Georgia,serif;font-size:.92rem;font-weight:500}.save-issues-head button{padding:3px 10px;border:1px solid var(--line);border-radius:4px;background:transparent;cursor:pointer;font-size:.66rem}.save-issues ul{display:grid;gap:4px;margin:0;padding:0;list-style:none}.save-issues li{color:#f0d8cf;font-size:.72rem;line-height:1.5}.save-issues li button{width:100%;padding:4px 7px;border:1px solid transparent;border-radius:4px;background:#ffffff08;cursor:pointer;font:inherit;text-align:left}.save-issues li button:hover{border-color:#ffb59a99}.save-issues .issue-overflow{color:var(--muted);font-style:italic}.save-issues[data-kind=conflict]{border-color:#ffc45cbf;background:#251a0b;box-shadow:0 0 0 1px #ffc45c33,0 18px 48px #000000a6}.save-issues[data-kind=conflict] .save-issues-head strong{color:#ffd08a}.save-issues[data-kind=conflict] li{color:#f6e6cd}.conflict-choices{display:grid;gap:6px;margin-top:10px}.conflict-choices[hidden]{display:none}.conflict-choices button{padding:8px 10px;border:1px solid rgba(255,196,92,.45);border-radius:4px;background:#ffc45c14;color:#ffe6bd;cursor:pointer;font:inherit;font-size:.72rem;line-height:1.45;text-align:left}.conflict-choices button:hover{border-color:#ffd696e6;background:#ffc45c29}.status-bar{z-index:4;grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-top:1px solid var(--line);color:#8c8f89;background:#090b0c;font:.59rem ui-monospace,monospace}@media(max-width:1180px){.bench-shell{grid-template-columns:210px minmax(560px,1fr) 240px}.document-actions span,.document-actions button span{display:none}}
