@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(./figtree-latin-400-normal-g7Dtegnw.woff2) format("woff2"),url(./figtree-latin-400-normal-BD4aNku5.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(./figtree-latin-500-normal-BWnGEVsr.woff2) format("woff2"),url(./figtree-latin-500-normal-B_yy1phn.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(./figtree-latin-600-normal-Cv_xCTDl.woff2) format("woff2"),url(./figtree-latin-600-normal-BM_oTo4n.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(./fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(./fraunces-latin-600-normal-DL5QCzvS.woff) format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:600;src:url(./fraunces-latin-600-italic-O70d2LGK.woff2) format("woff2"),url(./fraunces-latin-600-italic-BlP2rMdV.woff) format("woff")}:root{color-scheme:light;--ink: #1a211c;--ink-soft: #4d5850;--moss: #1f6a45;--moss-deep: #16382c;--copper: #b85a2a;--paper: #f4efe4;--paper-2: #fbf7ef;--line: #ddd3c2;--desk: #d4cbb8;--danger: #8d2e2e;--text: #8a4b12;--object: #1f6a45;--character: #234e70;--shadow: 0 18px 50px rgba(48, 36, 18, .16);font-family:Figtree,WenQuanYi Micro Hei,Segoe UI,sans-serif;font-size:15px;line-height:1.4;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;min-height:100dvh}button,input,textarea,select{font:inherit;color:inherit}button,select,input[type=number],input[type=text]{background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:6px 8px}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--moss);border-color:var(--moss);color:#f6f1e6}textarea{width:100%;border:1px solid var(--line);border-radius:6px;background:#fffdf8;padding:8px;resize:vertical}:focus-visible{outline:2px solid var(--copper);outline-offset:2px}#app{height:100dvh;display:grid;grid-template-columns:320px minmax(0,1fr) 360px;grid-template-rows:auto minmax(0,1fr)}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:16px;padding:10px 14px;background:var(--moss-deep);color:#f3ecdf}.brand{display:flex;flex-direction:column;min-width:92px}.brand-mark{font-family:Fraunces,Georgia,serif;font-weight:600;font-style:italic;font-size:22px;line-height:1}.brand-sub{font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.75}.size,.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.size label,.field label{display:flex;flex-direction:column;gap:2px;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.size input{width:88px}.topbar button,.topbar select{background:transparent;color:#f3ecdf;border-color:#f3ecdf59}.topbar button.primary{background:#e7d3b0;color:var(--ink);border-color:#e7d3b0}.lang-switch{display:inline-flex;border:1px solid rgba(243,236,223,.35);border-radius:6px;overflow:hidden}.lang-switch button{border:none;border-radius:0;padding:6px 8px}.lang-switch button+button{border-left:1px solid rgba(243,236,223,.35)}.lang-switch button.is-active{background:#e7d3b0;color:var(--ink)}.topbar input{background:#fbf7ef;color:var(--ink)}.status{margin-left:auto;min-height:1.2em;font-size:13px;opacity:.85}.panel{min-width:0;min-height:0;overflow:auto;background:var(--paper);padding:14px;display:flex;flex-direction:column;gap:12px}.left{border-right:1px solid var(--line)}.right{border-left:1px solid var(--line)}h2{margin:0;font-family:Fraunces,WenQuanYi Micro Hei,Georgia,serif;font-size:20px;font-weight:600}.hint,.shortcuts{margin:0;color:var(--ink-soft);font-size:13px}.field{display:flex;flex-direction:column;gap:4px}.field>.label-text{font-size:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}.field span,.inspector h3,.list-head{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.row,.add-row,.inspector-actions{display:flex;flex-wrap:wrap;gap:6px}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{border-radius:999px;padding:3px 8px;background:#efe6d6}.chips input{width:88px;border:none;background:transparent;padding:4px}.item-list{display:flex;flex-direction:column;gap:4px}.item-row{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:2px;border-left:4px solid var(--line)}.item-row strong{font-weight:600;font-size:13px}.item-row span{color:var(--ink-soft);font-size:12px}.item-row.item-text{border-left-color:var(--text)}.item-row.item-object{border-left-color:var(--object)}.item-row.item-character{border-left-color:var(--character)}.item-row.is-selected{background:#fff;border-color:var(--ink)}.center{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--desk)}.toolbar{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#ebe3d4;border-bottom:1px solid var(--line);flex-wrap:wrap}.toolbar label{display:flex;align-items:center;gap:6px;font-size:13px}.reference-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 12px;background:#f6f1e6;border-bottom:1px solid var(--line);font-size:13px}.reference-bar[hidden]{display:none}.reference-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.opacity{display:flex;align-items:center;gap:6px}.opacity input[type=range]{width:120px;accent-color:var(--moss)}.opacity span{min-width:36px;font-variant-numeric:tabular-nums}.file-btn{display:inline-flex;align-items:center;background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:6px 8px;cursor:pointer}.check{display:flex;align-items:center;gap:6px}.zoom{margin-left:auto;display:flex;align-items:center;gap:6px}.zoom span{min-width:44px;text-align:center;font-variant-numeric:tabular-nums}.viewport{position:relative;flex:1;min-height:0;overflow:auto}.viewport.is-file-drag{outline:3px dashed var(--moss);outline-offset:-8px}.viewport-inner{min-width:100%;min-height:100%;display:flex;align-items:center;justify-content:center;padding:28px}.world{position:relative;flex:none;box-shadow:var(--shadow);background:var(--paper-2)}.canvas{position:absolute;left:0;top:0;transform-origin:top left;background-color:var(--paper-2);background-image:linear-gradient(to right,rgba(26,33,28,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(26,33,28,.06) 1px,transparent 1px);background-size:16px 16px;touch-action:none;-webkit-user-select:none;user-select:none}.reference-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center;pointer-events:none;z-index:0}.reference-layer[hidden]{display:none}.box-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.canvas-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;text-align:center;color:var(--ink-soft);pointer-events:none}.box{--px: calc(1px / var(--zoom, 1));position:absolute;overflow:visible;border:calc(var(--px) * 1.5) solid currentColor;background:color-mix(in srgb,currentColor 14%,transparent)}.box-text{--c: var(--text)}.box-object{--c: var(--object)}.box-character{--c: var(--character)}.box{color:var(--c)}.box.is-selected{z-index:1;border-width:calc(var(--px) * 2.5);background:color-mix(in srgb,currentColor 22%,transparent);box-shadow:0 0 0 calc(var(--px) * 3) color-mix(in srgb,currentColor 22%,transparent)}.box.is-invalid{outline:calc(var(--px) * 2) dashed var(--danger);outline-offset:calc(var(--px) * -3)}.box-label{position:absolute;left:calc(var(--px) * -1.5);bottom:100%;padding:calc(var(--px) * 1) calc(var(--px) * 6);border-radius:calc(var(--px) * 4) calc(var(--px) * 4) 0 0;background:var(--c);font-size:calc(var(--px) * 11);line-height:1.3;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;pointer-events:none}.box-label{color:var(--paper-2);opacity:0;transition:opacity .12s}.box.is-selected .box-label,.box.is-hover .box-label,.box.is-editing .box-label{opacity:1}.box.is-hover:not(.is-selected){border-width:calc(var(--px) * 2)}.box-text-body,.box-caption{position:absolute;inset:calc(var(--px) * 4) calc(var(--px) * 6);overflow:hidden;pointer-events:none;white-space:pre-wrap;line-height:1.05}.box-caption{font-size:calc(var(--px) * 12);line-height:1.3;opacity:.85}.box-toolbar{position:absolute;right:0;bottom:100%;display:flex;gap:2px;padding:3px;margin-bottom:calc(var(--px) * 8);border-radius:8px;background:var(--moss-deep);box-shadow:0 6px 18px #161c1847;transform:scale(calc(1 / var(--zoom, 1)));transform-origin:bottom right;pointer-events:auto;white-space:nowrap;z-index:3}.box-toolbar.is-below{bottom:auto;top:100%;margin:calc(var(--px) * 8) 0 0;transform-origin:top right}.box-tool{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border:none;border-radius:6px;background:transparent;color:#f3ecdf;font-size:13px;line-height:1}.box-tool:hover{background:#f3ecdf24}.box-tool.is-danger:hover{background:#8d2e2e}.box-tool span{display:none}.box-tool.is-labelled span{display:inline}.box-tool svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.inline-editor{position:absolute;z-index:4;margin:0;padding:calc(1px / var(--zoom, 1) * 4) calc(1px / var(--zoom, 1) * 6);border:calc(1px / var(--zoom, 1) * 2.5) solid var(--copper);border-radius:0;background:#fffdf8f0;color:var(--ink);font-size:calc(1px / var(--zoom, 1) * 13);line-height:1.3;resize:none;overflow:auto;-webkit-user-select:text;user-select:text;box-shadow:0 0 0 calc(1px / var(--zoom, 1) * 4) #b85a2a38}.inline-editor.is-text{color:var(--text);line-height:1.05}.inline-editor:focus-visible{outline:none}.inline-editor[hidden]{display:none}.handle{position:absolute;width:10px;height:10px;background:#fffdf8;border:1.5px solid var(--ink);border-radius:2px;transform:translate(-50%,-50%) scale(calc(1 / var(--zoom, 1)));z-index:2;pointer-events:none}.handle-nw{left:0;top:0}.handle-n{left:50%;top:0}.handle-ne{left:100%;top:0}.handle-e{left:100%;top:50%}.handle-se{left:100%;top:100%}.handle-s{left:50%;top:100%}.handle-sw{left:0;top:100%}.handle-w{left:0;top:50%}.hud{position:absolute;left:12px;bottom:10px;padding:3px 8px;border-radius:999px;background:#16382ce0;color:#f3ecdf;font-size:12px;font-variant-numeric:tabular-nums;pointer-events:none}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.view-switch{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.view-switch button{border:none;border-radius:0;padding:4px 9px;font-size:13px}.view-switch button+button{border-left:1px solid var(--line)}.view-switch button.is-active{background:var(--moss);color:#f6f1e6}.prompt-text{flex:1;min-height:220px;font-family:IBM Plex Mono,"ui-monospace",monospace;font-size:12px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.error{margin:0;padding:8px 10px;border-radius:6px;background:#f8e6e2;color:var(--danger)}.danger{color:var(--danger)}.shortcuts summary{cursor:pointer}dialog{width:min(640px,calc(100vw - 32px));border:none;border-radius:12px;padding:18px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px #14100a47}dialog::backdrop{background:#161c1875}dialog textarea{min-height:180px;font-family:ui-monospace,monospace;font-size:12px}.file-btn input{display:none}.bbox-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.bbox-grid input{width:100%}@media(max-width:1080px){#app{height:auto;min-height:100dvh;display:flex;flex-direction:column}.topbar{order:0}.center{order:1;height:72vh}.left{order:2}.right{order:3}.status{margin-left:0}}.hud:empty{display:none}
