*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#1a1410;color:#f2e8d8;min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:1rem 1.5rem 2rem}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;border-bottom:1px solid #3d3228;padding-bottom:1rem}.app-header h1{margin:0;font-size:1.5rem;color:#e8c87a}.tab-bar{display:flex;gap:.5rem}.tab-button{background:#2a221c;border:1px solid #4a3d32;color:#d4c4a8;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.95rem}.tab-button:hover{background:#352b24}.tab-button.active{background:#5c4a32;border-color:#e8c87a;color:#fff8e8}.tab-panel{display:none}.tab-panel.active{display:block}.game-placeholder{padding:2rem;background:#221c17;border:1px solid #3d3228;border-radius:8px}.game-placeholder h2{margin-top:0}.game-tab,.game-menu,.game-play{display:flex;flex-direction:column;gap:1rem}.game-toolbar-nav{display:flex;gap:.5rem;align-items:center}.game-world-list-details{background:#221c17;border:1px solid #3d3228;border-radius:8px}.game-world-list-summary{padding:.75rem 1rem;cursor:pointer;font-weight:600;color:#e8c87a;-webkit-user-select:none;user-select:none}.game-world-list-summary:hover{color:#fff8e8}.game-world-list-details[open] .game-world-list-summary{border-bottom:1px solid #3d3228}.game-world-list{display:flex;flex-direction:column;gap:.5rem;padding:1rem}.game-world-item{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;text-align:left;background:#1a1410;border:1px solid #4a3d32;color:#f2e8d8;padding:.75rem 1rem;border-radius:6px;cursor:pointer}.game-world-item:hover{background:#2a221c;border-color:#e8c87a}.game-world-item-name{font-weight:600}.game-world-item-meta{font-size:.85rem;color:#9a8b78}.game-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#221c17;border:1px solid #3d3228;border-radius:8px}.game-world-title{font-weight:600;color:#e8c87a;flex:1;min-width:120px}.game-toolbar-save{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-left:auto}.game-name-input{background:#1a1410;border:1px solid #4a3d32;color:#f2e8d8;padding:.45rem .65rem;border-radius:4px;min-width:180px}.game-button{background:#2a221c;border:1px solid #4a3d32;color:#d4c4a8;padding:.45rem .9rem;border-radius:6px;cursor:pointer;font-size:.95rem}.game-button:hover{background:#352b24}.game-button.primary{background:#5c4a32;border-color:#e8c87a;color:#fff8e8}.game-button.primary:hover{background:#6d583c}.game-button.danger{border-color:#8f4a4a;color:#f0b0b0}.game-button.danger:hover{background:#4a2828}.game-help{margin:0}.game-canvas-wrap{display:flex;align-items:center;justify-content:center;height:min(70vh,640px);min-height:400px;background:#000;border:1px solid #3d3228;border-radius:8px;overflow:hidden}.game-canvas-wrap:fullscreen{width:100vw;height:100vh;min-height:unset;border:none;border-radius:0}.game-canvas-frame{position:relative;flex-shrink:0}.game-canvas-border{display:block;pointer-events:none;image-rendering:pixelated;image-rendering:crisp-edges}.game-canvas-stage{position:absolute;top:0;left:0}.mineral-popup{position:absolute;z-index:4;pointer-events:none;transform:translate(-50%,calc(-100% - 8px))}.mineral-popup-panel{padding:.5rem .75rem;background:#221c17;border:1px solid #e8c87a;border-radius:6px;box-shadow:0 4px 12px #00000073;min-width:120px}.mineral-popup-title{display:block;font-size:.85rem;font-weight:600;color:#e8c87a;margin-bottom:.35rem}.mineral-popup-stats{margin:0;display:flex;flex-direction:column;gap:.25rem}.mineral-popup-stat{display:flex;justify-content:space-between;gap:.75rem;font-size:.8rem}.mineral-popup-stat dt{margin:0;color:#b8a890}.mineral-popup-stat dd{margin:0;color:#e8dcc8;font-variant-numeric:tabular-nums}.mineral-popup-placeholder{margin:0;font-size:.8rem;color:#b8a890}.building-debug-popup{position:absolute;z-index:5;transform:translate(-50%,4px);pointer-events:auto}.building-debug-popup .game-button{font-size:.8rem;padding:.25rem .6rem;white-space:nowrap}.npc-debug-popup{position:absolute;z-index:5;transform:translate(-50%,4px);pointer-events:auto;display:flex;flex-direction:column;gap:.25rem;padding:.35rem .5rem;background:#1a1410;border:1px solid #3d3228;border-radius:6px}.npc-debug-need-row{display:flex;align-items:center;gap:.35rem}.npc-debug-need-label{font-size:.75rem;color:#b8a890;min-width:4.5rem}.npc-debug-need-row .game-button{font-size:.7rem;padding:.15rem .45rem}.game-canvas{display:block;cursor:none;image-rendering:pixelated;image-rendering:crisp-edges}.game-ui-canvas{position:absolute;inset:0;pointer-events:none;image-rendering:pixelated;image-rendering:crisp-edges}.game-debug-bar{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.75rem 1.25rem;padding:.65rem 1rem;background:#1a1410;border:1px solid #3d3228;border-radius:8px}.game-ui-debug-panel:not([hidden]){display:flex;flex-direction:column;gap:.75rem;flex:1 1 100%;padding-top:.75rem;border-top:1px solid #3d3228}.game-debug-section{background:#221c17;border:1px solid #3d3228;border-radius:8px}.game-debug-section-summary{padding:.6rem .85rem;cursor:pointer;font-weight:600;color:#e8c87a;-webkit-user-select:none;user-select:none}.game-debug-section-summary:hover{color:#fff8e8}.game-debug-section[open] .game-debug-section-summary{border-bottom:1px solid #3d3228}.game-debug-section-toolbar{padding:.5rem .85rem 0;border-bottom:1px solid #3d3228}.game-debug-layer-list{list-style:none;margin:0;padding:.65rem .85rem;display:flex;flex-direction:column;gap:.35rem}.game-debug-layer{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#d4c4a8;cursor:pointer}.game-debug-layer-name{font-family:monospace;color:#e8c87a}.game-ui-debug-selection:not([hidden]){display:flex;flex-direction:column;gap:.75rem;padding-top:.75rem;border-top:1px solid #3d3228}.game-ui-debug-selection-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem}.game-ui-debug-selection-title{font-family:monospace;color:#e8c87a;font-size:.95rem}.game-ui-debug-selection-type{color:#9a8b78;font-size:.85rem}.game-ui-debug-copy-row textarea{min-height:6rem;font-family:monospace;font-size:.8rem}.game-ui-debug-anchor-header{display:flex;align-items:center;gap:.75rem}.game-ui-debug-anchor-label{color:#c4b49a;font-size:.9rem}.game-ui-debug-anchor-clear{padding:.25rem .6rem;font-size:.8rem}.game-ui-debug-anchor-clear.active{border-color:#e8c87a;color:#fff8e8}.game-ui-debug-anchor-grid{display:grid;grid-template-columns:repeat(3,2.25rem);gap:.35rem;width:fit-content}.game-ui-debug-anchor-cell{width:2.25rem;height:2.25rem;padding:0;background:#2a221c;border:1px solid #4a3d32;border-radius:4px;color:#d4c4a8;cursor:pointer;font-size:1rem;line-height:1}.game-ui-debug-anchor-cell:hover{background:#352b24;border-color:#6a5848}.game-ui-debug-anchor-cell.active{background:#5c4a32;border-color:#e8c87a;color:#fff8e8}.game-ui-debug-anchor-help{margin:0}.game-debug-toggle{display:inline-flex;align-items:center;gap:.4rem;color:#c4b49a;font-size:.9rem;cursor:pointer;-webkit-user-select:none;user-select:none}.game-debug-toggle input{accent-color:#e8c87a}.game-delete-log-button{font-size:.85rem;padding:.25rem .65rem}canvas{image-rendering:pixelated;image-rendering:crisp-edges}.muted{color:#9a8b78}.debug-tab{display:flex;flex-direction:column;gap:1rem}.debug-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;padding:1rem;background:#221c17;border:1px solid #3d3228;border-radius:8px}.control-group{display:flex;flex-direction:column;gap:.35rem}.control-group label{font-size:.85rem;color:#b8a890}.control-group select,.control-group input{background:#1a1410;border:1px solid #4a3d32;color:#f2e8d8;padding:.4rem .6rem;border-radius:4px;min-width:200px}.object-builder-controls .control-group select{min-width:120px}.control-group input[type=number]{min-width:80px;width:80px}.tilemap-select-row{display:flex;align-items:stretch;gap:.35rem}.tilemap-select-row select{flex:1 1 auto;min-width:0}.tilemap-nav-button{flex:0 0 auto;padding:.4rem .65rem;min-width:2.5rem}.canvas-container{overflow:auto;max-height:70vh;padding:1rem;background:#0f0c0a;border:1px solid #3d3228;border-radius:8px}.tilemap-canvas{display:block;cursor:crosshair;image-rendering:pixelated;image-rendering:crisp-edges}.output-panel{padding:1rem;background:#221c17;border:1px solid #3d3228;border-radius:8px}.output-panel h3{margin:0 0 .75rem;font-size:1rem}.output-row{display:flex;gap:.75rem;align-items:flex-start}.output-row textarea{flex:1;min-height:60px;background:#0f0c0a;border:1px solid #4a3d32;color:#e8c87a;font-family:ui-monospace,Consolas,monospace;font-size:.9rem;padding:.5rem;border-radius:4px;resize:vertical}.output-actions{display:flex;flex-direction:column;gap:.5rem}.copy-button{background:#5c4a32;border:1px solid #e8c87a;color:#fff8e8;padding:.5rem 1rem;border-radius:4px;cursor:pointer;white-space:nowrap}.copy-button:hover{background:#6d583c}.copy-button:disabled{opacity:.45;cursor:not-allowed}.copy-button:disabled:hover{background:#5c4a32}.copy-button.copied{background:#3d5c32;border-color:#8fd48f}.help-text{margin:.5rem 0 0;font-size:.85rem;color:#9a8b78}.object-builder-panel{padding:1rem;background:#221c17;border:1px solid #3d3228;border-radius:8px;display:flex;flex-direction:column;gap:.75rem}.object-builder-panel h3{margin:0;font-size:1rem}.object-builder-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.object-builder-layers{display:flex;flex-direction:column;gap:.5rem}.object-builder-layers-label{font-size:.85rem;color:#b8a890}.object-builder-layer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.object-builder-layer-item{display:flex;align-items:center;gap:.5rem}.object-builder-layer-select{min-width:5.5rem}.object-builder-layer-item.active .object-builder-layer-select{border-color:#e8c87a;color:#e8c87a}.object-builder-layer-item.hidden .object-builder-layer-select{opacity:.65}.object-builder-layer-hide[aria-pressed=true]{color:#b8a890}.object-builder-brush{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.object-builder-brush-label{font-size:.85rem;color:#b8a890}.object-brush-preview{display:block;image-rendering:pixelated;image-rendering:crisp-edges;border:1px solid #4a3d32;border-radius:4px}.object-builder-canvas-container{max-height:50vh}.object-builder-canvas{display:block;cursor:crosshair;image-rendering:pixelated;image-rendering:crisp-edges}.error-text{color:#f08080;margin:0}.ui-tab{display:flex;flex-direction:column;gap:1rem}.ui-preview-panel{padding:1rem;background:#221c17;border:1px solid #3d3228;border-radius:8px}.ui-preview-panel h3{margin:0 0 .75rem;font-size:1rem}.ui-preview-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-bottom:1rem}.ui-preview-container{overflow:auto;padding:1rem;background:#0f0c0a;border:1px solid #3d3228;border-radius:8px}.ui-preview-canvas{display:block}.techtree-tab{display:flex;flex-direction:column;gap:1rem}.techtree-resources-panel,.techtree-options-panel,.techtree-editor-panel{padding:1rem;background:#221c17;border:1px solid #3d3228;border-radius:8px}.techtree-resources-panel h3,.techtree-options-panel h3,.techtree-editor-panel h3{margin:0 0 .75rem;font-size:1rem}.techtree-options-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.techtree-options-header h3{margin:0}.techtree-visual-row{display:flex;gap:.75rem;align-items:flex-start}.techtree-visual-row .techtree-editor-preview{margin-bottom:0;flex-shrink:0}.techtree-visual-row .techtree-visual-json-row{flex:1;min-width:0;margin-bottom:0}.techtree-visual-json-row{margin-bottom:.5rem}.techtree-visual-json{min-height:88px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem}.techtree-delete-button{color:#f2b8b5;border-color:#8b4540}.techtree-delete-button:hover{background:#3a1f1d;border-color:#b85a54}.techtree-resources{display:flex;flex-wrap:wrap;gap:.75rem}.techtree-resource-item{display:flex;flex-direction:column;align-items:center;gap:.35rem;min-width:64px}.techtree-resource-label,.techtree-option-label{font-size:.85rem;color:#b8a890;text-align:center}.techtree-resource-toggle-grid{display:flex;flex-wrap:wrap;gap:.75rem}.techtree-resource-toggle{cursor:pointer}.techtree-resource-toggle-input{position:absolute;opacity:0;width:0;height:0;margin:0}.techtree-resource-toggle-box{display:flex;flex-direction:column;align-items:center;gap:.35rem;min-width:72px;padding:.5rem .65rem;background:#1a1410;border:2px solid #4a3d32;border-radius:6px;transition:border-color .15s ease,background .15s ease}.techtree-resource-toggle:hover .techtree-resource-toggle-box{background:#2a221c}.techtree-resource-toggle.selected .techtree-resource-toggle-box{border-color:#e8c87a;background:#352b24}.techtree-resource-toggle-label{font-size:.85rem;color:#b8a890;text-align:center}.techtree-category-needs{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.techtree-category-need-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.techtree-category-need-fade{margin-left:auto}.techtree-category-needs-add-row{display:flex;gap:.5rem;align-items:center}.techtree-category-needs-select{flex:1;min-width:120px}.techtree-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:1rem}.techtree-option-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.techtree-category{display:flex;flex-direction:column;gap:.35rem}.techtree-category.selected .techtree-category-toggle{border-color:#e8c87a;background:#352b24}.techtree-category-header{display:flex;align-items:stretch;gap:.25rem}.techtree-category-chevron-btn{display:flex;align-items:center;justify-content:center;width:2rem;padding:0;background:#1a1410;border:1px solid #4a3d32;border-radius:6px;color:#9a8b78;cursor:pointer}.techtree-category-chevron-btn:hover{background:#2a221c}.techtree-category-toggle{display:flex;align-items:center;gap:.5rem;flex:1;padding:.45rem .6rem;background:#1a1410;border:1px solid #4a3d32;border-radius:6px;color:#e8c87a;cursor:pointer;text-align:left;font-size:.9rem}.techtree-category-toggle:hover{background:#2a221c}.techtree-category-chevron{display:inline-block;width:1rem;color:#9a8b78;transition:transform .15s ease}.techtree-category.collapsed .techtree-category-chevron{transform:rotate(-90deg)}.techtree-category-label{flex:1;color:#d4c4a8}.techtree-category-count{color:#9a8b78;font-size:.85rem}.techtree-category-icon{flex-shrink:0}.techtree-category-options{list-style:none;margin:0;padding:0 0 0 1.25rem;display:flex;flex-direction:column;gap:.35rem}.techtree-category.collapsed .techtree-category-options{display:none}.techtree-category-empty{padding:.35rem .75rem;margin:0}.techtree-option-item.selected .techtree-option-button{border-color:#e8c87a;background:#352b24}.techtree-option-item.dragging{opacity:.45}.techtree-option-item.techtree-drop-target .techtree-option-button{border-color:#e8c87a;box-shadow:inset 0 0 0 1px #e8c87a}.techtree-option-button{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;background:#1a1410;border:1px solid #4a3d32;border-radius:6px;color:#f2e8d8;cursor:pointer;text-align:left}.techtree-option-button:hover{background:#2a221c}.techtree-drag-handle{flex-shrink:0;width:1rem;color:#9a8b78;cursor:grab;font-size:.85rem;line-height:1;-webkit-user-select:none;user-select:none;letter-spacing:-.15em}.techtree-drag-handle:active{cursor:grabbing}.techtree-icon{display:block;image-rendering:pixelated;image-rendering:crisp-edges;border:1px solid #4a3d32;border-radius:4px;flex-shrink:0}.techtree-editor-preview{margin-bottom:1rem}.techtree-fieldset{border:1px solid #4a3d32;border-radius:6px;margin:0 0 1rem;padding:.75rem 1rem}.techtree-fieldset legend{padding:0 .35rem;color:#e8c87a;font-size:.9rem}.techtree-fieldset-group>legend{font-size:.95rem}.techtree-fieldset-nested{border-color:#3d3228;margin-bottom:.75rem}.techtree-fieldset-nested:last-child{margin-bottom:0}.techtree-fieldset-nested legend{color:#d4c4a8;font-size:.85rem}.techtree-door-toggle{margin-bottom:.5rem}.techtree-door-preview-toggle{margin:0}.techtree-door-position-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem}.techtree-door-position-row .help-text{margin:0}.techtree-door-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .75rem;margin-bottom:.75rem}.techtree-door-previews{display:flex;gap:1rem}.techtree-door-preview-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.85rem;color:#9a8b78}.techtree-editor-preview canvas{cursor:default}.techtree-editor-preview.is-door-picking canvas{cursor:crosshair}.copy-button.active{background:#6d583c;box-shadow:inset 0 0 0 1px #e8c87a}.techtree-build-time-label,.techtree-label-field{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:#d4c4a8}.techtree-build-time-label input[type=number],.techtree-label-field input[type=text]{background:#1a1410;border:1px solid #4a3d32;color:#f2e8d8;padding:.4rem .6rem;border-radius:4px}.techtree-build-time-label input[type=number]{width:100px}.techtree-label-field input[type=text]{flex:1;min-width:160px}.techtree-checkbox-grid{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem}.techtree-checkbox-label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:#d4c4a8;cursor:pointer}.techtree-costs{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.techtree-cost-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.techtree-cost-row select,.techtree-cost-row input[type=number]{background:#1a1410;border:1px solid #4a3d32;color:#f2e8d8;padding:.4rem .6rem;border-radius:4px}.techtree-cost-row select{min-width:140px}.techtree-cost-row input[type=number]{width:80px}.techtree-editor-actions{display:flex;align-items:center;gap:.75rem}.minerals-tab{display:flex;flex-direction:column;gap:1rem}.minerals-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:1rem}.minerals-list-panel,.minerals-editor-panel{padding:1rem;background:#221c17;border:1px solid #3d3228;border-radius:8px}.minerals-list-panel h3,.minerals-editor-panel h3{margin:0 0 .75rem;font-size:1rem}.minerals-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.minerals-list-item.selected .minerals-list-button{border-color:#e8c87a;background:#2a2218}.minerals-list-button{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .65rem;background:#1a1410;border:1px solid #4a3d32;border-radius:6px;color:#e8dcc8;cursor:pointer;text-align:left}.minerals-list-button:hover{border-color:#6a5a48}.minerals-editor-preview{margin-bottom:1rem}.minerals-depth-row{display:flex;gap:1rem;flex-wrap:wrap}.minerals-cursor-panel{padding:1rem;background:#221c17;border:1px solid #3d3228;border-radius:8px}.minerals-cursor-panel h3{margin:0 0 .5rem;font-size:1rem}.minerals-cursor-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.75rem}.audio-unlock-prompt{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0f0c0ad1;cursor:pointer}.audio-unlock-prompt-text{margin:0;padding:1rem 1.5rem;border:1px solid #e8c87a;border-radius:8px;background:#221c17;color:#fff8e8;font-size:1rem;text-align:center}.needs-tab{display:flex;flex-direction:column;gap:1rem}.needs-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:1rem}.needs-list-panel,.needs-editor-panel{padding:1rem;background:#221c17;border:1px solid #3d3228;border-radius:8px}.needs-list-panel h3,.needs-editor-panel h3{margin:0 0 .75rem;font-size:1rem}.needs-list-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.needs-list-header h3{margin:0}.needs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.needs-list-item.selected .needs-list-button{border-color:#e8c87a;background:#2a2218}.needs-list-button{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .65rem;background:#1a1410;border:1px solid #4a3d32;border-radius:6px;color:#e8dcc8;cursor:pointer;text-align:left}.needs-list-button:hover{border-color:#6a5a48}.needs-editor-preview{margin-bottom:1rem}.needs-resource-preview{margin-top:.5rem}
