:root{--bg:#0b0a0e;--panel:#14111a;--line:#2b2430;--blood:#8a0f1a;--blood-bright:#c4202f;--bone:#d8cfc0;--gold:#b8975a}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--bone);margin:0;font:14px/1.4 Palatino Linotype,Georgia,serif;overflow:hidden}body{grid-template:"bar bar""side stage"1fr"foot foot"/320px 1fr;display:grid}#toolbar{background:var(--panel);border-bottom:1px solid var(--blood);flex-wrap:wrap;grid-area:bar;align-items:center;gap:14px;padding:8px 12px;display:flex}#toolbar h1{letter-spacing:.2em;text-transform:uppercase;color:var(--blood-bright);margin:0 6px 0 0;font-size:1rem;font-weight:400}.group{align-items:center;gap:4px;display:flex}.group[hidden]{display:none}.base-map-status{color:var(--gold);margin-right:4px;font-size:.8rem}.spacer{flex:1}label{color:var(--gold);font-size:.8rem}input[type=number]{width:52px;color:var(--bone);border:1px solid var(--line);background:#0b0a0e;padding:3px 4px}button{font:inherit;color:var(--bone);border:1px solid var(--line);cursor:pointer;background:#1d1822;padding:5px 10px}button:hover{border-color:var(--blood-bright)}button.active{background:var(--blood);border-color:var(--blood-bright);color:#fff}button.primary{border-color:var(--gold);color:var(--gold)}#sidebar{background:var(--panel);border-right:1px solid var(--line);grid-area:side;padding:10px;overflow-y:auto}#sidebar h2{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:12px 0 6px;font-size:.75rem;font-weight:400}#sidebar h2:first-child{margin-top:0}#palette{grid-template-columns:repeat(3,1fr);gap:6px;max-height:36vh;padding-right:2px;display:grid;overflow-y:auto}.asset{text-align:center;word-break:break-word;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:6px 4px;font-size:.74rem;display:flex}.asset canvas,.asset svg{background:#09080c;flex:none;width:64px;height:64px}.asset small{color:#8d8478;font-size:.66rem}.asset.active{background:#8a0f1a73}#inspector{color:var(--bone);min-height:4em;font-size:.85rem}.help{color:#a99f90;margin:0;padding-left:16px;font-size:.8rem}.help b{color:var(--bone)}#stage{grid-area:stage;position:relative;overflow:hidden}#grid{cursor:crosshair;width:100%;height:100%;display:block;position:absolute;inset:0}#statusbar{color:#8d8478;background:var(--panel);border-top:1px solid var(--line);grid-area:foot;justify-content:space-between;padding:3px 12px;font-size:.78rem;display:flex}.asset-wrap{display:flex;position:relative}.asset-wrap .asset{flex:1}.asset-remove{color:#a99f90;background:#0b0a0e;padding:0 5px;font-size:.8rem;line-height:1.2;position:absolute;top:2px;right:2px}.asset-remove:hover{color:#ff6060}dialog{background:var(--panel);color:var(--bone);border:1px solid var(--blood);width:min(420px,92vw);padding:18px 22px}dialog::backdrop{background:#000000a6}dialog h2{letter-spacing:.18em;text-transform:uppercase;color:var(--blood-bright);margin:0 0 12px;font-size:.95rem;font-weight:400}dialog label{flex-direction:column;flex:1;gap:3px;margin-bottom:10px;display:flex}dialog input[type=text],dialog input[type=number],dialog select,dialog input[type=file]{width:100%;color:var(--bone);border:1px solid var(--line);font:inherit;background:#0b0a0e;padding:5px 6px}dialog .row{gap:10px;display:flex}dialog .row.end{justify-content:flex-end;margin-top:6px}dialog .error{color:#ff7070;margin:0 0 8px;font-size:.85rem}button:disabled{opacity:.45;cursor:not-allowed}#palette-nav{flex-wrap:wrap;align-items:center;gap:2px;margin-bottom:6px;font-size:.8rem;display:flex}.crumb{color:var(--gold);background:0 0;border-color:#0000;padding:2px 6px}.crumb.current{color:var(--bone);opacity:1}.crumb-sep{color:#6c6458}.crumb-note{color:var(--gold);padding:2px 6px}#palette-search{width:100%;color:var(--bone);border:1px solid var(--line);font:inherit;background:#0b0a0e;margin-bottom:6px;padding:5px 7px}.palette-note{color:#8d8478;grid-column:1/-1;margin:6px 0;font-size:.8rem}.asset.folder{color:var(--gold)}details#asset-settings{margin-top:12px}details#asset-settings summary{cursor:pointer;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-size:.75rem}.panel{flex-direction:column;gap:6px;margin-top:6px;font-size:.82rem;display:flex}.panel[hidden]{display:none}.panel label{color:#a99f90;flex-direction:column;gap:2px;display:flex}.panel input,.panel select{width:100%;color:var(--bone);border:1px solid var(--line);font:inherit;background:#0b0a0e;padding:3px 5px}.scale-row{grid-template-columns:1.4fr 1fr;gap:6px;display:grid}.settings-heading{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;margin-top:4px;font-size:.72rem}.settings-status{color:#8d8478;min-height:1.2em;font-size:.75rem}.settings-status.error{color:#ff7070}.anchor-row{grid-template-columns:auto 1fr;align-items:start;gap:10px;display:grid}.offset-fields{flex-direction:column;gap:4px;display:flex}.anchor-picker{border:1px solid var(--line);background:#09080c;grid-template-rows:repeat(3,24px);grid-template-columns:repeat(3,24px);gap:3px;padding:4px;display:grid}.anchor-picker button{background:#1d1822;width:24px;height:24px;padding:0}.anchor-picker button.active{background:var(--blood-bright);border-color:#fff}button.danger{color:#ff8080;border-color:#5a2a2a}.mode-row{flex-wrap:wrap;gap:4px;display:flex}.mode-row button{flex:1;padding:4px 6px;font-size:.78rem}.mode-row button.active{background:var(--blood);border-color:var(--blood-bright);color:#fff}#brush-panel{margin-top:10px}.surface-swatches{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.surface-swatches button{flex-direction:column;align-items:center;gap:2px;padding:3px;font-size:.72rem;display:flex}.surface-swatches img,.surface-swatches .swatch-none{width:40px;height:40px;image-rendering:pixelated;border:1px solid var(--line);background:#0d0e12}.merge-panel{background:var(--panel);border:1px solid var(--blood);flex-direction:column;gap:8px;width:min(360px,100% - 20px);max-height:calc(100% - 20px);padding:12px 14px;display:flex;position:absolute;top:10px;right:10px;overflow-y:auto;box-shadow:0 6px 24px #0009}.merge-panel[hidden]{display:none}.merge-panel h2{letter-spacing:.16em;text-transform:uppercase;color:#ffa040;margin:0;font-size:.85rem;font-weight:400}.merge-note{color:#a99f90;margin:4px 0 0;font-size:.8rem}.merge-all{flex-wrap:wrap;gap:6px;display:flex}.merge-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.merge-list li{border:1px solid var(--line);flex-direction:column;gap:4px;padding:6px;display:flex}.merge-where{color:#ffa040;background:0 0;border-color:#0000;align-self:flex-start;padding:0;text-decoration:underline}.merge-sides{flex-direction:column;gap:4px;display:flex}.merge-sides button{text-align:left;font-size:.8rem}.history-dialog{width:min(560px,92vw)}.history-body{max-height:60vh;overflow-y:auto}.history-list{flex-direction:column;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.history-list li{border:1px solid var(--line);padding:8px}.history-title{color:var(--gold);font-size:.85rem}.history-note{margin:2px 0 4px}.panel-note{color:#a99f90;margin:4px 0 0;font-size:.78rem}#area-panel input{width:100%;color:var(--bone);border:1px solid var(--line);font:inherit;background:#0b0a0e;padding:5px 6px}.updates-body{max-height:60vh;overflow-y:auto}.updates-list{flex-direction:column;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.updates-list>li{border:1px solid var(--line);padding:8px}.updates-area{color:var(--gold);flex-direction:row;align-items:center;gap:8px;margin:0;display:flex}.updates-notes{color:var(--bone);margin:4px 0 0 24px;padding:0;font-size:.85rem}.updates-chunks{flex-wrap:wrap;gap:4px 12px;margin:6px 0 0 24px;font-size:.8rem;display:flex}.updates-chunks label{color:#a99f90;flex-direction:row;flex:none;align-items:center;gap:4px;margin:0}dialog.entrance-dialog{width:min(1040px,96vw)}.entrance-body{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.entrance-view canvas{border:1px solid var(--line);cursor:crosshair;width:640px;max-width:100%;height:auto;display:block}.entrance-list{flex-direction:column;flex:1;gap:8px;min-width:260px;max-height:440px;display:flex;overflow-y:auto}.entrance-row{border:1px solid var(--line);flex-direction:column;gap:4px;padding:6px;display:flex}.entrance-row.selected{border-color:var(--gold)}.entrance-row input[type=text]{width:100%;color:var(--bone);border:1px solid var(--line);font:inherit;background:#0b0a0e;padding:4px 6px}.entrance-row .row{gap:6px;display:flex}.entrance-row select{flex:1}
