*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#1a1d18}body{font-family:ArialPixel,system-ui,sans-serif;color:var(--text, #dedfd6);-webkit-font-smoothing:none;-webkit-tap-highlight-color:transparent;user-select:none}#app{position:fixed;inset:0}#scene{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.px{display:inline-block;width:18px;height:18px;vertical-align:middle;background-color:currentColor;-webkit-mask:var(--i) center / contain no-repeat;mask:var(--i) center / contain no-repeat}.btn .px{margin-right:5px}.slider .px{width:15px;height:15px;color:var(--accent, #c4b550)}.panel{background:var(--bg, #4a5942);border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.topbar{position:fixed;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:max(7px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 7px max(12px,env(safe-area-inset-left));pointer-events:none}.brand{font-size:16px;font-weight:400;letter-spacing:.5px;pointer-events:auto;text-shadow:1px 1px 0 #000}.brand b{color:var(--accent, #c4b550)}.brand span{color:var(--text, #dedfd6);margin-left:6px}.stats{display:flex;gap:12px;font-size:12px;color:var(--text-3, #a0aa95);pointer-events:auto}.stats i{color:var(--text, #dedfd6);font-style:normal;font-variant-numeric:tabular-nums}.ver{margin-left:8px;font-size:11px;padding:2px 6px;cursor:pointer;pointer-events:auto;color:var(--text-3, #a0aa95);background:var(--secondary-bg, #3e4637);font-family:inherit;border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.ver:hover{color:var(--accent, #c4b550)}.changelog{padding:14px;overflow-y:auto}.cl-entry{margin-bottom:14px}.cl-ver{color:var(--accent, #c4b550);font-size:13px;text-shadow:1px 1px 0 #000;margin-bottom:4px}.changelog ul{margin:0;padding-left:18px}.changelog li{font-size:13px;line-height:1.5;color:var(--text, #dedfd6)}.inspect{flex:1;text-align:center;font-size:13px;color:var(--accent, #c4b550);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:1px 1px 0 #000}.toolbar{position:fixed;top:38px;left:10px;z-index:5;display:flex;align-items:center;gap:4px;flex-wrap:wrap;background:var(--bg, #4a5942);padding:5px;border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.ic.cs-btn,.ic{width:36px;height:34px;min-width:0;padding:0;display:grid;place-items:center;font-size:16px;line-height:1}.ic.active,.btn.active{border-color:var(--border-dark, #292c21) var(--border-light, #8c9284) var(--border-light, #8c9284) var(--border-dark, #292c21);color:var(--accent, #c4b550)}.ic:disabled{opacity:.35;cursor:default}.slider{display:flex;align-items:center;gap:5px;padding:0 7px;height:34px;color:var(--text, #dedfd6);font-size:13px;background:var(--secondary-bg, #3e4637);border:2px solid;border-color:var(--border-dark, #292c21) var(--border-light, #8c9284) var(--border-light, #8c9284) var(--border-dark, #292c21)}.slider input[type=range]{width:78px;accent-color:var(--accent, #c4b550)}.slider .sval{min-width:30px;text-align:right;font-variant-numeric:tabular-nums;color:var(--accent, #c4b550)}.settings-body .slider{width:100%}.settings-body .slider input[type=range]{flex:1;width:auto}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:20;background:var(--secondary-bg, #3e4637);color:var(--accent, #c4b550);font-size:13px;text-shadow:1px 1px 0 #000;padding:8px 14px;border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.settings-body{padding:12px;display:flex;flex-direction:column;gap:10px}.setrow{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.4;color:var(--text, #dedfd6);cursor:pointer}.setrow.col{flex-direction:column;align-items:stretch;gap:5px;cursor:default}.setrow input[type=checkbox]{margin-top:2px;accent-color:var(--accent, #c4b550);flex:none}.setrow b{color:var(--accent, #c4b550)}.setrow select{font:inherit;color:var(--text, #dedfd6);background:var(--secondary-bg, #3e4637);padding:5px 6px;border:2px solid;border-color:var(--border-dark, #292c21) var(--border-light, #8c9284) var(--border-light, #8c9284) var(--border-dark, #292c21)}.settings-foot{display:flex;justify-content:flex-end;align-items:center;padding:0 12px 12px}#gen-prompt{width:100%}.gen-hint{font-size:11px;color:var(--text-3, #a0aa95);line-height:1.4}.gen-examples{display:flex;flex-wrap:wrap;gap:5px}.gen-chip{font:inherit;font-size:12px;cursor:pointer;padding:4px 9px;color:var(--text, #dedfd6);background:var(--secondary-bg, #3e4637);border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.gen-chip:hover{color:var(--accent, #c4b550)}.gen-status{flex:1;font-size:12px;color:var(--accent, #c4b550)}.setbtn{font:inherit;cursor:pointer;padding:7px 22px;color:var(--accent, #c4b550);background:var(--secondary-bg, #3e4637);text-shadow:1px 1px 0 #000;border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.setbtn:active{border-color:var(--border-dark, #292c21) var(--border-light, #8c9284) var(--border-light, #8c9284) var(--border-dark, #292c21)}.palette{position:fixed;right:10px;top:38px;width:216px;z-index:5;background:var(--bg, #4a5942);padding:8px;display:flex;flex-direction:column;max-height:calc(100vh - 52px);border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.cur{display:flex;align-items:center;gap:8px;font-size:14px;padding:2px 2px 8px;color:var(--accent, #c4b550);text-shadow:1px 1px 0 #000}.cur .chip{width:18px;height:18px;flex:none;border:1px solid #000}.cur #c-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cur-desc{font-size:11px;line-height:1.4;color:var(--text-3, #a0aa95);padding:0 2px 8px}.sheet-toggle{display:none;width:28px;height:26px;font:inherit;cursor:pointer;color:var(--accent, #c4b550);background:var(--secondary-bg, #3e4637);border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.sheet-toggle:active{border-color:var(--border-dark, #292c21) var(--border-light, #8c9284) var(--border-light, #8c9284) var(--border-dark, #292c21)}.elsearch{width:100%;height:30px;font-size:13px;margin-bottom:8px;flex:none}.tabs{display:flex;flex-wrap:wrap;gap:3px;padding-bottom:8px;border-bottom:2px solid var(--border-dark, #292c21)}.tab{border:2px solid;background:var(--secondary-bg, #3e4637);color:var(--text-3, #a0aa95);border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284);padding:3px 8px;font-size:12px;cursor:pointer;line-height:1;font-family:inherit}.tab:hover{color:var(--text, #dedfd6)}.tab.active{color:var(--accent, #c4b550);border-color:var(--border-dark, #292c21) var(--border-light, #8c9284) var(--border-light, #8c9284) var(--border-dark, #292c21)}.elgrid{display:grid;grid-template-columns:1fr 1fr;gap:4px;overflow-y:auto;padding-top:8px}.swatch{display:flex;align-items:center;gap:6px;text-align:left;cursor:pointer;background:var(--secondary-bg, #3e4637);color:var(--text, #dedfd6);border:2px solid;padding:4px 6px;font-size:12px;font-family:inherit;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.swatch:hover{color:var(--accent, #c4b550)}.swatch.active{color:var(--accent, #c4b550);border-color:var(--border-dark, #292c21) var(--border-light, #8c9284) var(--border-light, #8c9284) var(--border-dark, #292c21)}.swatch .chip{width:13px;height:13px;flex:none;border:1px solid #000}.swatch .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hint{position:fixed;left:10px;bottom:8px;z-index:5;font-size:12px;color:var(--text-3, #a0aa95);background:var(--secondary-bg, #3e4637);padding:4px 9px;border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.modal{position:fixed;inset:0;z-index:20;background:#0a0c088c;display:grid;place-items:center}.modal[hidden]{display:none}.modal-card{width:min(680px,92vw);max-height:80vh;display:flex;flex-direction:column;background:var(--bg, #4a5942);overflow:hidden;border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284);box-shadow:4px 4px #0006}.modal-head{display:flex;gap:8px;align-items:center;padding:8px;background:var(--secondary-accent, #958831);color:#000;border-bottom:2px solid var(--border-dark, #292c21)}.modal-head strong{font-weight:400}.search{flex:1;height:34px;padding:0 10px;font-size:14px;font-family:inherit;color:var(--text, #dedfd6);background:var(--slider-bg, #1f1f1f);border:2px solid;border-color:var(--border-dark, #292c21) var(--border-light, #8c9284) var(--border-light, #8c9284) var(--border-dark, #292c21);outline:none}.preset-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:5px;padding:12px;overflow-y:auto}.preset{text-align:left;padding:7px 9px;font-size:13px;cursor:pointer;font-family:inherit;background:var(--secondary-bg, #3e4637);color:var(--text, #dedfd6);border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.preset:hover{color:var(--accent, #c4b550)}.preset-empty{color:var(--text-3, #a0aa95);padding:16px;grid-column:1 / -1;text-align:center}.saves-body{padding:12px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.srow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.shead{font-size:12px;color:var(--accent, #c4b550);text-shadow:1px 1px 0 #000}.slots{display:flex;flex-direction:column;gap:5px;max-height:32vh;overflow-y:auto}.slot{display:flex;align-items:center;gap:8px;padding:5px 6px 5px 10px;background:var(--secondary-bg, #3e4637);border:2px solid;border-color:var(--border-light, #8c9284) var(--border-dark, #292c21) var(--border-dark, #292c21) var(--border-light, #8c9284)}.slot-name{flex:1;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn.sm{font-size:12px}.btn.danger{color:#e88}.codebox{width:100%;min-height:54px;resize:vertical;font-family:ui-monospace,monospace;font-size:11px;padding:8px;color:var(--text, #dedfd6);background:var(--slider-bg, #1f1f1f);border:2px solid;border-color:var(--border-dark, #292c21) var(--border-light, #8c9284) var(--border-light, #8c9284) var(--border-dark, #292c21);outline:none}@media(max-width:680px){.toolbar{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:calc(34px + env(safe-area-inset-top))}.slider input[type=range]{width:54px}.palette{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));width:auto;top:auto;bottom:calc(8px + env(safe-area-inset-bottom));max-height:46vh}.sheet-toggle{display:grid;place-items:center}.palette.collapsed .tabs,.palette.collapsed .elgrid{display:none}.palette.collapsed{max-height:none}.elgrid{grid-template-columns:1fr 1fr 1fr}.inspect,.hint{display:none}}@media(max-width:420px){.elgrid{grid-template-columns:1fr 1fr}}
