@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-cyrillic-ext-wght-normal-CO5hGrJv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-cyrillic-wght-normal-EAA9jha_.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-vietnamese-wght-normal-k7S-YeeD.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-latin-ext-wght-normal-BsZE-iaG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-latin-wght-normal-l_AIctKy.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--green-500:#8fc86f;--green-400:#7db85e;--green-700:#315b22;--neutral-900:#1a1a1a;--neutral-600:#666;--page-bg:#f3f5ef;--color-bg:var(--page-bg);--color-surface:#fff;--color-text:var(--neutral-900);--color-text-muted:#5f655b;--color-accent:var(--green-500);--color-accent-hover:var(--green-400);--color-accent-dark:var(--green-700);--color-border:#0000001f;--color-danger:#b7513a;--font-body:"Montserrat Variable", "Montserrat", sans-serif;--radius-btn:6px;--radius-card:8px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);font:500 13px/1.4 var(--font-body);-webkit-font-smoothing:antialiased;flex-direction:column;display:flex}h1{margin:0;font-size:15px;font-weight:700}h2{margin:0 0 8px;font-size:13px;font-weight:700}p{margin:0}.muted{color:var(--color-text-muted);font-size:12px}button,select,input{font:inherit;color:inherit;border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);min-height:30px}button{cursor:pointer;white-space:nowrap;padding:0 10px}button:hover:not(:disabled){border-color:var(--color-accent-dark)}button:disabled{color:var(--color-text-muted);opacity:.6;cursor:default}button[aria-pressed=true]{background:var(--color-accent);border-color:var(--color-accent-dark)}button.primary{background:var(--color-accent);border-color:var(--color-accent);font-weight:600}button.primary:hover{background:var(--color-accent-hover)}:focus-visible{outline:2px solid var(--color-accent-dark);outline-offset:1px}input,select{width:100%;min-width:0;padding:0 6px}input{font-variant-numeric:tabular-nums}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;gap:8px;padding:8px 12px;display:flex}.topbar-gap{flex:1}.layout{flex:1;grid-template-columns:300px minmax(0,1fr) 280px;min-height:0;display:grid}.panel{background:var(--color-surface);overflow-y:auto}.panel:first-child{border-right:1px solid var(--color-border)}.panel:last-child{border-left:1px solid var(--color-border)}.panel section{border-bottom:1px solid var(--color-border);padding:12px}.field{align-items:center;gap:6px;min-width:0;display:flex}.field>span{color:var(--color-text-muted);flex:none;font-size:12px}.field-wide{flex-direction:column;align-items:stretch;gap:2px;margin-bottom:6px}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.row{gap:6px;margin-top:6px;display:flex}.row button{flex:1}.group{margin-top:12px}.group .muted{margin-top:4px}.group-label{margin:0 0 4px;font-size:12px;font-weight:600}.check{cursor:pointer;align-items:center;gap:6px;margin-top:6px;display:flex}.check input{width:16px;min-height:16px;accent-color:var(--color-accent-dark)}.object-list{max-height:180px;margin:0;padding:0;list-style:none;overflow-y:auto}.object-row{text-align:left;border-color:#0000;justify-content:space-between;align-items:center;gap:8px;width:100%;margin-bottom:2px;display:flex}.object-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tag-danger{color:var(--color-danger);flex:none;font-size:11px;font-weight:600}.tool{border-top:1px solid var(--color-border);margin-top:12px;padding-top:10px}.tool summary{cursor:pointer;font-size:12px;font-weight:600}.tool[open] summary{margin-bottom:8px}.tool .group-label{color:var(--color-text-muted);margin-top:8px;font-weight:500}.tool button{width:100%;margin-top:8px}.scene{min-width:0;min-height:0;position:relative;overflow:hidden}.scene-canvas{position:absolute;inset:0}.scene-canvas canvas{display:block}.scene-tools{pointer-events:none;flex-wrap:wrap;gap:4px;display:flex;position:absolute;top:10px;left:10px;right:10px}.scene-tools>*{pointer-events:auto}.message{background:var(--color-surface);border:1px solid var(--color-danger);border-radius:var(--radius-card);width:min(560px,100% - 20px);color:var(--color-text);border-left-width:4px;justify-content:space-between;align-items:flex-start;gap:8px;margin-top:40px;padding:8px 10px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.message-close{background:0 0;border:0;flex:none;min-height:22px;padding:0 6px;font-size:16px;line-height:1}.empty-scene,.drop-hint{text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);pointer-events:none;max-width:340px;padding:10px 14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.drop-hint{border:2px dashed var(--color-accent-dark);font-weight:600}.scene-bottom{pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.scene-bottom>*{pointer-events:auto}.summary,.layer-controls,.stale-note{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);font-variant-numeric:tabular-nums;padding:6px 10px;font-size:12px}.summary{color:var(--color-text-muted);flex-wrap:wrap;gap:2px 12px;display:flex}.summary b{color:var(--color-text);font-weight:600}.summary-tag{color:var(--color-text);font-weight:700}.summary-stale,.stale-text{color:var(--color-danger);font-weight:600}.stale-note{border-color:var(--color-danger);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;font-weight:600;display:flex}.layer-controls{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.layer-slider{min-height:24px;accent-color:var(--color-accent-dark);background:0 0;border:0;flex:200px;padding:0}.layer-info{flex:none;max-width:100%}.wide{width:100%}button.wide{white-space:normal;margin-top:6px;padding-block:4px}.slice-progress{margin-top:6px}.slice-progress-text{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.slice-progress progress{width:100%;accent-color:var(--color-accent-dark)}.slice-note{margin-top:6px}.legend,.warning-list{margin:0;padding:0;list-style:none}.legend li{align-items:center;gap:6px;font-size:12px;display:flex}.swatch{border-radius:2px;flex:none;width:18px;height:4px}.warning{border-left:3px solid var(--color-danger);flex-direction:column;margin-bottom:6px;padding-left:8px;display:flex}.warning-detail{overflow-wrap:anywhere}.param-group{margin-bottom:10px}.param-group summary{cursor:pointer;margin-bottom:6px;font-size:12px;font-weight:700}.param{margin-bottom:4px}.param-row{grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:6px;display:grid}.param-row>span{color:var(--color-text-muted);font-size:12px}.param .check{margin-top:0}.field-note{color:var(--color-text-muted);margin-top:2px;font-size:11px}.field-error{color:var(--color-danger);font-weight:600}[aria-invalid=true]{border-color:var(--color-danger)}textarea{width:100%;min-width:0;color:inherit;border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);resize:vertical;padding:4px 6px;font:12px/1.4 ui-monospace,Menlo,monospace}input:disabled,textarea:disabled{background:var(--color-bg);color:var(--color-text-muted)}.machine-profile{margin-top:6px}@media (prefers-reduced-motion:no-preference){button{transition:background-color .12s,border-color .12s}}@media (width<=900px){body{height:auto}.topbar{flex-wrap:wrap}.layout{grid-template-columns:minmax(0,1fr)}.scene{order:-1;height:70vh}.summary,.layer-controls,.stale-note{padding:4px 8px;font-size:11px}.panel{overflow:visible;border:0!important}}.output-dialog{border:1px solid var(--color-border,#ccc);border-radius:6px;max-width:440px;padding:16px}.output-dialog::backdrop{background:#0006}.output-dialog h3{margin:0 0 8px}.output-dialog .row{gap:8px;margin-top:8px;display:flex}.output-dialog>button{width:100%;margin-top:8px}.send-info{grid-template-columns:auto 1fr;gap:2px 12px;margin:0;display:grid}.send-info dt{color:var(--color-text-muted)}.send-info dd{word-break:break-all;margin:0;font-weight:600}.out-of-bed{border-left:3px solid #b7513a;margin:8px 0 0;padding:6px 8px}
