*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:#1a1a2e;color:#eee;min-height:100vh;overflow:hidden}#app{display:flex;flex-direction:column;height:100vh;height:100dvh}header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#16213e;border-bottom:1px solid #0f3460;flex-shrink:0}header h1{font-size:1.25rem;font-weight:600}#sim-selector{padding:.5rem 1rem;font-size:1rem;background:#0f3460;color:#eee;border:1px solid #e94560;border-radius:4px;cursor:pointer}#sim-selector:focus{outline:2px solid #e94560;outline-offset:2px}#layout-toggle{display:flex;gap:.25rem}#layout-toggle button{padding:.25rem .5rem;font-size:1rem;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;opacity:.4;transition:opacity .15s,border-color .15s}#layout-toggle button:hover{opacity:.7}#layout-toggle button.active{opacity:1;border-color:#e94560}main.force-desktop{flex-direction:row!important}main.force-desktop #canvas-container{flex:1;min-height:unset}main.force-desktop #resize-handle{width:6px!important;height:auto!important;cursor:col-resize!important}main.force-desktop #resize-handle:after{width:2px;height:40px}main.force-desktop #controls{width:260px;min-width:180px;max-width:400px;height:auto!important;min-height:unset!important;max-height:unset!important;border-left:1px solid #0f3460;border-top:none!important}main.force-mobile{flex-direction:column!important}main.force-mobile #canvas-container{flex:1;min-height:30vh}main.force-mobile #resize-handle{width:100%!important;height:12px!important;cursor:row-resize!important}main.force-mobile #resize-handle:after{width:40px;height:3px}main.force-mobile #controls{width:100%!important;min-width:unset!important;max-width:unset!important;min-height:120px;max-height:60vh;height:35vh;border-top:1px solid #0f3460!important;border-left:none!important}main{display:flex;flex:1;overflow:hidden;min-height:0}#canvas-container{flex:1;display:flex;justify-content:center;align-items:center;background:#0a0a12;padding:1rem;min-width:0;min-height:0}#sim-canvas{background:#000;border:2px solid #0f3460;border-radius:8px}#resize-handle{width:6px;background:#0f3460;cursor:col-resize;flex-shrink:0;position:relative;transition:background .15s}#resize-handle:hover,#resize-handle.dragging{background:#e94560}#resize-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:40px;background:#444;border-radius:1px}#resize-handle:hover:after,#resize-handle.dragging:after{background:#fff}#controls{width:260px;min-width:180px;max-width:400px;background:#16213e;padding:1rem;display:flex;flex-direction:column;gap:1rem;overflow-y:auto;flex-shrink:0}#controls section{display:flex;flex-direction:column;gap:.5rem}section#playback{display:grid!important;grid-template-columns:1fr 1fr;gap:.35rem}#playback button{padding:.5rem .4rem;font-size:.75rem;white-space:nowrap}#controls button{padding:.5rem .75rem;font-size:.875rem;background:#0f3460;color:#eee;border:1px solid #0f3460;border-radius:4px;cursor:pointer;transition:background .15s,border-color .15s}#controls button:hover{background:#e94560;border-color:#e94560}#controls button:disabled{opacity:.5;cursor:not-allowed}#controls button:focus{outline:2px solid #e94560;outline-offset:2px}.slot-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:.25rem;width:100%}.slot{width:100%;min-width:0;height:28px;padding:0;font-size:.75rem;font-weight:500;border-radius:4px;transition:all .15s;border:1px solid #333;display:flex;align-items:center;justify-content:center}.slot:not(.has-data){background:#1a1a2e;color:#666}.slot.has-data{background:#4ade80;color:#000;border-color:#4ade80;font-weight:600}.slot.is-loaded{box-shadow:0 0 0 2px #fff}#config-slots.mode-save .slot:not(.has-data){background:#60a5fa;border-color:#60a5fa;color:#000;cursor:pointer}#config-slots.mode-save .slot:not(.has-data):hover{background:#93c5fd}#config-slots.mode-delete .slot.has-data{background:#f87171;border-color:#f87171;color:#000;cursor:pointer}#config-slots.mode-delete .slot.has-data:hover{background:#fca5a5}#config-slots.mode-save{border-left:3px solid #60a5fa;padding-left:8px;margin-left:-11px}#config-slots.mode-delete{border-left:3px solid #f87171;padding-left:8px;margin-left:-11px}.slot-actions{display:flex;gap:.5rem}.slot-actions button{flex:1;font-size:.75rem}#save-slot-btn.active{background:#60a5fa;border-color:#60a5fa;color:#000}#delete-slot-btn.active{background:#f87171;border-color:#f87171;color:#000}#config-slots.mode-save .slot.has-data,#config-slots.mode-delete .slot:not(.has-data){opacity:.4;cursor:not-allowed;pointer-events:none}#stats{margin-top:auto;padding-top:1rem;border-top:1px solid #0f3460;font-family:monospace;font-size:.8rem;color:#888}#params{display:flex;flex-direction:column;gap:.75rem}.param-row{display:flex;flex-direction:column;gap:.2rem}.param-row label{font-size:.75rem;color:#aaa}.param-row input[type=range]{width:100%;cursor:pointer}.param-row .param-value{font-size:.75rem;font-family:monospace;color:#e94560}.param-row input[type=number].param-number{width:100%;padding:.35rem .5rem;font-size:.875rem;font-family:monospace;background:#0f3460;color:#eee;border:1px solid #0f3460;border-radius:4px}.param-row input[type=number].param-number:focus{outline:2px solid #e94560;outline-offset:1px}.param-number-controls{display:flex;gap:.25rem;margin-top:.25rem}.param-number-controls button{flex:1;padding:.25rem .5rem;font-size:.875rem;background:#0f3460;color:#eee;border:1px solid #0f3460;border-radius:4px;cursor:pointer;transition:background .15s}.param-number-controls button:hover{background:#e94560;border-color:#e94560}.matrix-container{background:#0f1525;border:1px solid #0f3460;border-radius:6px;padding:.5rem;margin-bottom:.75rem}.matrix-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.matrix-title{font-size:.75rem;font-weight:600;color:#aaa}.matrix-mode{font-size:.65rem;color:#666;flex:1}.matrix-btn{padding:.2rem .4rem;font-size:.75rem;background:#0f3460;color:#eee;border:1px solid #0f3460;border-radius:4px;cursor:pointer;transition:background .15s}.matrix-btn:hover{background:#e94560;border-color:#e94560}.matrix-seed-row{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem;padding:.3rem;background:#0003;border-radius:4px}.matrix-seed-label{font-size:.7rem;color:#888;min-width:30px}.matrix-seed-input{width:80px;padding:.2rem .3rem;font-size:.75rem;font-family:monospace;background:#0f3460;color:#eee;border:1px solid #0f3460;border-radius:3px}.matrix-seed-input.grayed{opacity:.5;background:#1a2a40}.matrix-seed-input:focus{outline:1px solid #e94560}.matrix-seed-controls{display:flex;gap:2px}.matrix-seed-controls button{padding:.15rem .35rem;font-size:.7rem;background:#0f3460;color:#eee;border:1px solid #0f3460;border-radius:3px;cursor:pointer;transition:background .15s}.matrix-seed-controls button:hover{background:#e94560;border-color:#e94560}.matrix-grid{display:grid;gap:2px}.matrix-col-header,.matrix-row-header{width:100%;height:12px;border-radius:2px;opacity:.8}.matrix-row-header{width:12px;height:100%}.matrix-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;border-radius:3px;min-height:32px;position:relative}.matrix-value{font-size:.65rem;font-family:monospace;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.matrix-controls{display:flex;gap:1px;margin-top:1px}.matrix-controls button{padding:0;width:14px;height:12px;font-size:.5rem;line-height:12px;text-align:center;background:#ffffff26;border:none;border-radius:2px;color:#fff;cursor:pointer;transition:background .1s}.matrix-controls button:hover{background:#ffffff59}@media(max-aspect-ratio:4/3){main{flex-direction:column}#canvas-container{flex:1;min-height:30vh}#resize-handle{width:100%;height:12px;cursor:row-resize}#resize-handle:after{width:40px;height:3px}#controls{width:100%;min-width:unset;max-width:unset;min-height:120px;max-height:60vh;height:35vh;border-top:1px solid #0f3460;padding:.75rem;gap:.75rem;overflow-y:auto}#playback{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:.35rem}#playback button{font-size:.75rem;padding:.5rem .25rem}#params{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.slot{width:100%;height:28px}.slot-buttons{width:100%}header h1{font-size:1rem}}@media(max-width:480px){#params{grid-template-columns:1fr}#playback{grid-template-columns:repeat(2,1fr)}}
