:root{--bg: #070707;--panel: #0f0f0f;--panel2: #141414;--border: #1e1e1e;--border2: #2a2a2a;--accent: #c8922a;--accent-bright: #e8a93a;--accent-dim: #7a5518;--text: #b8b8b8;--text-bright: #e0e0e0;--muted: #444444;--dot-color: #efefef}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:flex;flex-direction:column}header{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--panel);z-index:10}.logo{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-weight:800;font-size:17px;letter-spacing:.4em;color:#fff;display:flex;align-items:center;gap:6px}.logo-dot{color:var(--accent)}.logo-sub{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;font-weight:400;letter-spacing:.25em;color:var(--muted);text-transform:uppercase;margin-left:10px;padding-top:2px}.header-right{display:flex;align-items:center;gap:10px}#statusText{font-size:8px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}.upload-btn{padding:7px 14px;font-family:inherit;font-size:8px;letter-spacing:.2em;background:transparent;border:1px solid var(--accent);color:var(--accent);cursor:pointer;text-transform:uppercase;transition:all .15s}.upload-btn:hover{background:var(--accent);color:#000}.upload-btn:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.main{display:flex;flex:1;overflow:hidden}.panel{width:210px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:14px 12px 20px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.panel::-webkit-scrollbar{width:3px}.panel::-webkit-scrollbar-thumb{background:var(--border2)}.sec-title{font-size:7.5px;letter-spacing:.25em;color:var(--accent-dim);text-transform:uppercase;margin-bottom:10px;margin-top:4px;padding-bottom:5px;border-bottom:1px solid var(--border)}.sep{height:1px;background:var(--border);margin:14px 0 10px}.ctrl{margin-bottom:13px}.ctrl-label{display:flex;justify-content:space-between;align-items:center;font-size:8.5px;letter-spacing:.12em;color:var(--text);text-transform:uppercase;margin-bottom:5px}.ctrl-val{color:var(--accent);font-weight:700;min-width:32px;text-align:right}input[type=range]{width:100%;height:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border2);outline:none;cursor:pointer;border-radius:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;background:var(--accent);cursor:pointer;border-radius:0;box-shadow:0 0 0 2px #c8922a26}input[type=range]:hover::-webkit-slider-thumb{background:var(--accent-bright)}input[type=range]::-moz-range-thumb{width:10px;height:10px;background:var(--accent);cursor:pointer;border:none;border-radius:0}.select-ctrl{width:100%;background:var(--bg);border:1px solid var(--border2);color:var(--text-bright);font-family:inherit;font-size:8.5px;padding:5px 7px;cursor:pointer;outline:none}.select-ctrl:focus-visible{border-color:var(--accent)}.select-ctrl option{background:#111}.toggle-row{display:flex;gap:3px}.toggle-btn{flex:1;padding:5px 2px;font-size:9px;letter-spacing:.05em;font-family:inherit;background:var(--bg);border:1px solid var(--border2);color:var(--muted);cursor:pointer;transition:all .12s;text-transform:uppercase;line-height:1}.toggle-btn:hover{border-color:var(--accent-dim);color:var(--text)}.toggle-btn:focus-visible{outline:2px solid var(--accent-dim);outline-offset:1px}.toggle-btn.active{background:var(--accent);border-color:var(--accent);color:#000;font-weight:700}.check-row{display:flex;align-items:center;gap:7px;cursor:pointer;margin-bottom:13px}.check-row:focus-within .check-box{box-shadow:0 0 0 2px var(--accent-dim)}.check-box{width:12px;height:12px;border:1px solid var(--border2);background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .12s}.check-box.checked{background:var(--accent);border-color:var(--accent)}.check-box.checked:after{content:"✓";font-size:8px;color:#000;font-weight:700}.check-label{font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--text)}.color-row{display:flex;gap:7px;align-items:center;margin-bottom:8px}input[type=color]{width:28px;height:20px;border:1px solid var(--border2);background:none;cursor:pointer;padding:1px;flex-shrink:0}.color-lbl{font-size:8.5px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.render-btn{width:100%;padding:11px;background:var(--accent);border:none;color:#000;font-family:inherit;font-size:9px;font-weight:700;letter-spacing:.25em;cursor:pointer;text-transform:uppercase;transition:all .15s;margin-top:6px}.render-btn:hover{background:var(--accent-bright)}.render-btn:active{transform:scale(.98)}.render-btn:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.canvas-area{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.canvas-wrap{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;background:#060606;background-image:radial-gradient(circle,#161616 1px,transparent 1px);background-size:18px 18px}#mainCanvas{cursor:crosshair;display:block;position:relative;z-index:2}.drop-zone{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;pointer-events:none;z-index:3}.drop-zone.hidden{display:none}.drop-icon{font-size:52px;opacity:.12;animation:pulse 3s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.12}50%{opacity:.22}}.drop-text{font-size:9px;letter-spacing:.25em;color:var(--muted);text-transform:uppercase}.drop-hint{font-size:8px;letter-spacing:.2em;color:var(--accent-dim);text-transform:uppercase}.export-bar{display:flex;align-items:center;gap:6px;padding:8px 14px;border-top:1px solid var(--border);background:var(--panel);flex-shrink:0}.export-label{font-size:7px;letter-spacing:.25em;color:var(--muted);text-transform:uppercase;margin-right:2px;flex-shrink:0}.export-btn{padding:5px 11px;font-family:inherit;font-size:7.5px;letter-spacing:.15em;background:transparent;border:1px solid var(--border2);color:var(--text);cursor:pointer;text-transform:uppercase;transition:all .12s;white-space:nowrap}.export-btn:hover{border-color:var(--accent);color:var(--accent)}.export-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.dot-count{margin-left:auto;font-size:8px;color:var(--muted);letter-spacing:.12em;white-space:nowrap}.dot-count span{color:var(--accent)}.toast{position:fixed;bottom:60px;right:18px;background:var(--accent);color:#000;font-family:inherit;font-size:8px;letter-spacing:.2em;padding:7px 14px;text-transform:uppercase;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;z-index:200}.toast.show{opacity:1;transform:translateY(0)}.canvas-wrap.drag-over{outline:2px solid var(--accent);outline-offset:-2px}.preset-row{display:flex;flex-wrap:wrap;gap:3px}.preset-btn{flex:1 1 auto;min-width:0;padding:4px 2px;font-family:inherit;font-size:7px;letter-spacing:.08em;background:var(--bg);border:1px solid var(--border2);color:var(--muted);cursor:pointer;transition:all .12s;text-transform:uppercase;line-height:1;white-space:nowrap}.preset-btn:hover{border-color:var(--accent-dim);color:var(--text)}.preset-btn:focus-visible{outline:2px solid var(--accent-dim);outline-offset:1px}.preset-btn.active{background:var(--accent);border-color:var(--accent);color:#000;font-weight:700}.reset-forces-btn{width:100%;padding:7px;background:transparent;border:1px solid var(--border2);color:var(--muted);font-family:inherit;font-size:7.5px;letter-spacing:.15em;cursor:pointer;text-transform:uppercase;transition:all .12s;margin-top:4px;margin-bottom:4px}.reset-forces-btn:hover{border-color:var(--accent-dim);color:var(--text)}.reset-forces-btn:focus-visible{outline:2px solid var(--accent-dim);outline-offset:1px}.logo-header{display:flex;align-items:baseline;gap:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
