@charset "UTF-8";:root{--surface-base: #0a0a0a;--surface-1: #1a1a1a;--surface-2: #1e1e1e;--surface-3: #222;--surface-input: #111;--surface-panel: rgba(20, 20, 20, .85);--surface-panel-dense: rgba(20, 20, 20, .95);--surface-overlay: rgba(255, 255, 255, .06);--surface-overlay-hover: rgba(255, 255, 255, .08);--border-subtle: #2a2a2a;--border-input: #444;--border-hover: #666;--border-strong: #888;--text-primary: #e0e0e0;--text-secondary: #ccc;--text-muted: #999;--text-faint: #666;--text-dim: #555;--accent: #3a7bd5;--accent-light: #5b9bd5;--accent-hover: #7ab8e0;--accent-teal: #7abecc;--accent-bg: #1a2a3a;--accent-bg-2: #1a4a7a;--accent-bg-hover: #1e5590;--accent-border: #2a4a6a;--action-bg: #1e2a3a;--action-border: #2a4a6a;--action-text: #6aa;--action-bg-hover: #253a50;--action-border-hover: #3a6a8a;--action-text-hover: #8cc;--success: #4caf50;--warning: #ffeb3b;--danger: #f44336;--danger-text: #f88;--danger-bg: #400;--danger-bg-hover: #2a1a1a;--danger-border: #a44;--toggle-track: #333;--toggle-track-hover: #3a3a3a;--toggle-knob: #888}*{margin:0;padding:0;box-sizing:border-box}body{background:#0a0a0a;color:#e0e0e0;font-family:system-ui,-apple-system,sans-serif;height:100vh;overflow:hidden}#canvas-container{width:100%;height:100vh}canvas{display:block;width:100%;height:100%}#controls-wrapper{position:fixed;top:60px;left:12px;z-index:1000;transform:translate(-85%);transition:transform .3s ease}#controls-wrapper:not(.empty) #controls{padding-top:36px}#controls-wrapper:hover,#controls-wrapper.pinned{transform:translate(0)}#controls-wrapper.collapsed,#controls-wrapper.empty{display:none}#pin-toggle{position:absolute;top:8px;right:8px;z-index:1;background:none;border:none;color:#555;width:24px;height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;border-radius:4px;transition:background .15s,color .15s}#pin-toggle span{display:inline-block;transform:rotate(0);transition:transform .2s ease}#pin-toggle:hover{background:#ffffff14;color:#999}#pin-toggle.active{color:#7abecc}#pin-toggle.active span{transform:rotate(-45deg)}#controls{background:#141414d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid #2a2a2a;border-radius:10px;padding:16px;scrollbar-width:none;-ms-overflow-style:none}#controls::-webkit-scrollbar{display:none}#controls{width:260px;max-width:calc(100vw - 80px);max-height:calc(100vh - 72px);overflow-y:scroll;display:flex;flex-direction:column;gap:12px}#shader-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:998;opacity:0;pointer-events:none;transition:opacity .2s}#shader-backdrop.open{opacity:1;pointer-events:auto}#shader-menu{background:#141414f2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid #2a2a2a;border-radius:10px;padding:8px;scrollbar-width:none;-ms-overflow-style:none}#shader-menu::-webkit-scrollbar{display:none}#shader-menu{position:fixed;top:58px;right:12px;z-index:999;width:200px;max-height:calc(100vh - 72px);overflow-y:auto;display:flex;flex-direction:column;gap:2px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s ease}#shader-menu.open{transform:translateY(0);opacity:1;pointer-events:auto}.shader-param-panel{background:#141414f2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid #2a2a2a;border-radius:10px;padding:8px 10px;position:fixed;top:58px;right:220px;z-index:999;width:180px;display:flex;flex-direction:column;gap:6px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s ease}.shader-param-panel.open{transform:translateY(0);opacity:1;pointer-events:auto}#shader-post-params{top:auto}#ledger-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:998;opacity:0;pointer-events:none;transition:opacity .2s}#ledger-backdrop.open{opacity:1;pointer-events:auto}.ledger-panels{position:fixed;top:58px;right:12px;z-index:999;display:flex;gap:8px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s ease}.ledger-panels.open{transform:translateY(0);opacity:1;pointer-events:auto}.ledger-panel{background:#141414f2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid #2a2a2a;border-radius:10px;padding:8px 12px;font-family:Ubuntu Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:13px;color:silver;min-width:80px}.ledger-panel:empty{display:none}#settings-toggle{position:fixed;z-index:1001;background:#1e1e1e;border:1px solid #2a2a2a;border-radius:8px;color:#e0e0e0;width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s}#settings-toggle:hover{background:#252525}#settings-toggle.hidden{display:none}#settings-toggle{top:12px;left:12px;font-size:18px}#shader-toggle{position:fixed;z-index:1001;background:#1e1e1e;border:1px solid #2a2a2a;border-radius:8px;color:#e0e0e0;width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s}#shader-toggle:hover{background:#252525}#shader-toggle.hidden{display:none}#shader-toggle{top:12px;right:60px;font-size:14px;font-weight:700;font-family:system-ui,-apple-system,sans-serif}#ledger-toggle{position:fixed;z-index:1001;background:#1e1e1e;border:1px solid #2a2a2a;border-radius:8px;color:#e0e0e0;width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s}#ledger-toggle:hover{background:#252525}#ledger-toggle.hidden{display:none}#ledger-toggle{top:12px;right:108px;font-size:16px}.control-group{display:flex;align-items:center;justify-content:space-between;gap:4px 8px}.control-group label{font-size:12px;color:#999}.control-group input[type=number]{background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#ccc;padding:4px 6px;font-size:12px;font-family:inherit;cursor:ns-resize}.control-group input[type=number]:focus{outline:none;border-color:#3a7bd5}.control-group input[type=text]{background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#ccc;padding:4px 6px;font-size:12px;font-family:inherit}.control-group input[type=text]:focus{outline:none;border-color:#3a7bd5}.control-group input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid #444;border-radius:4px;width:32px;height:24px;padding:2px;cursor:pointer}.control-group input[type=color]::-webkit-color-swatch-wrapper{padding:0}.control-group input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.control-group input[type=color]::-moz-color-swatch{border:none;border-radius:2px}.control-group input[type=color]:hover{border-color:#666}.control-group input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;min-width:14px;border:2px solid #555;border-radius:50%;background:#1a1a1a;cursor:pointer;transition:border-color .15s,background .15s;flex-shrink:0}.control-group input[type=radio]:checked{border-color:#5b9bd5;background:#5b9bd5;box-shadow:inset 0 0 0 2px #1a1a1a}.control-group input[type=radio]:hover{border-color:#777}.control-group input[type=radio]:checked:hover{border-color:#7ab8e0;background:#7ab8e0}.control-group input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;width:36px;height:20px;min-width:36px;background:#333;border-radius:10px;border:none;cursor:pointer;transition:background .2s ease;flex-shrink:0}.control-group input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#888;border-radius:50%;transition:transform .2s ease,background .2s ease}.control-group input[type=checkbox]:checked{background:#1a4a7a}.control-group input[type=checkbox]:checked:after{transform:translate(16px);background:#5b9bd5}.control-group input[type=checkbox]:hover{background:#3a3a3a}.control-group input[type=checkbox]:checked:hover{background:#1e5590}.control-group select{background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#ccc;padding:4px 6px;font-size:12px;font-family:inherit;cursor:pointer}.control-group select:focus{outline:none;border-color:#3a7bd5}.control-group select option{background:#1a1a1a;color:#ccc}.control-group select:disabled{opacity:.5;cursor:default}.control-group-column{flex-direction:column;align-items:stretch}num-input{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:2px 8px}num-input>label{min-width:0;flex-shrink:1;font-size:11px;line-height:1.3}.num-input-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.num-input-suffix{font-size:11px;color:#888;display:inline-block;min-width:52px;text-align:left;flex-shrink:0}.num-input-reset{background:none;border:none;color:#666;font-size:14px;cursor:pointer;padding:0 2px;line-height:1;transition:color .15s;flex-shrink:0}.num-input-reset:hover{color:#e0e0e0}.control-hint{font-size:10px;color:#666;margin-bottom:4px}.control-radios{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.control-radios label{display:inline-flex;align-items:center;gap:3px;cursor:pointer}.status-cell{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:4px;padding:6px 8px;text-align:center}.status-cell-label{font-size:10px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}.status-cell-value{display:flex;align-items:center;justify-content:center;gap:4px;font-size:13px;color:#ccc;font-family:monospace;white-space:nowrap}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}.auto-balance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:6px 8px}.ab-item{display:flex;align-items:baseline;gap:4px;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:4px;padding:2px 6px}.ab-label{font-size:9px;color:#666;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.ab-value{font-size:11px;color:#7abecc;font-family:Ubuntu Mono,Fira Code,Cascadia Code,Consolas,monospace}.settings-section{display:flex;flex-direction:column;gap:0;border:1px solid #2a2a2a;border-radius:6px;overflow:visible}.settings-section-header{font-size:10px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px;padding:8px 10px;background:#1a1a1a;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,color .15s}.settings-section-header:hover{background:#222;color:#bbb}.settings-section-header:before{content:"▶";font-size:8px;transition:transform .2s ease;flex-shrink:0}.settings-section.open>.settings-section-header:before{transform:rotate(90deg)}.settings-section-body{display:none;flex-direction:column;gap:10px;padding:10px}.settings-section.open>.settings-section-body{display:flex}.settings-subsection-header{font-size:10px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.05em;padding:4px 0 2px;border-bottom:1px solid #2a2a2a;margin-bottom:2px}.particle-types-section{display:flex;flex-direction:column;gap:6px}.particle-type-row{display:flex;align-items:center;gap:6px}.particle-card-delete{background:none;border:1px solid #555;border-radius:4px;color:#999;font-size:16px;line-height:1;width:24px;height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.particle-card-delete:hover{background:#400;border-color:#a44;color:#f88}.particle-type-swatch{width:28px;height:24px;border:1px solid #444;border-radius:4px;cursor:pointer;flex-shrink:0}.particle-type-swatch:hover{border-color:#888}.particle-type-name{background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#ccc;padding:4px 6px;font-size:12px;font-family:inherit;width:80px;min-width:0}.particle-type-name:focus{outline:none;border-color:#3a7bd5}.particle-type-count{background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#ccc;padding:4px 6px;font-size:12px;font-family:inherit;width:80px;cursor:ns-resize}.particle-type-count:focus{outline:none;border-color:#3a7bd5}.add-particle-btn{background:#1e2a3a;border:1px solid #2a4a6a;border-radius:4px;color:#6aa;cursor:pointer}.add-particle-btn:hover{background:#253a50;border-color:#3a6a8a;color:#8cc}.add-particle-btn{border-radius:6px;font-size:24px;line-height:1;padding:10px;width:100%;display:flex;align-items:center;justify-content:center}.force-matrix-container{display:flex;flex-direction:column;align-items:center;gap:6px}.force-matrix-header{display:flex;align-items:center;justify-content:space-between;align-self:stretch;gap:6px}.force-matrix-container>.control-group{align-self:stretch}.force-matrix-randomize,.force-matrix-clear{background:#1e2a3a;border:1px solid #2a4a6a;border-radius:4px;color:#6aa;cursor:pointer}.force-matrix-randomize:hover,.force-matrix-clear:hover{background:#253a50;border-color:#3a6a8a;color:#8cc}.force-matrix-randomize,.force-matrix-clear{font-size:11px;padding:3px 8px}.force-matrix-grid{display:inline-grid;gap:2px;place-items:center}.force-matrix-grid .force-matrix-header-cell{width:16px;height:16px;display:grid;place-items:center;font-size:10px;color:#999}.force-matrix-swatch{display:inline-block;width:12px;height:12px;border-radius:50%}.force-matrix-cell{width:16px;height:16px;background:#1a1a1a;border:1px solid #333;border-radius:3px;color:#ccc;padding:0;font-size:0;text-align:center;cursor:ns-resize;-moz-appearance:textfield;box-sizing:border-box}.force-matrix-cell::-webkit-outer-spin-button,.force-matrix-cell::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.force-matrix-cell:focus{outline:none;border-color:#3a7bd5}.force-matrix-auto-row{display:flex;align-items:center;gap:6px}.color-picker-swatch{width:28px;height:24px;border:1px solid #444;border-radius:4px;cursor:pointer;flex-shrink:0;transition:border-color .15s}.color-picker-swatch:hover{border-color:#888}.color-picker-popup{position:fixed;z-index:2000;background:#1a1a1a;border:1px solid #444;border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:6px;box-shadow:0 6px 24px #000000b3;width:200px}.color-picker-preview{height:24px;border-radius:4px;border:1px solid #333}.color-picker-field-row{display:flex;gap:4px}.color-picker-field{display:flex;align-items:center;gap:4px;flex:1}.color-picker-label{font-size:10px;color:#666;min-width:16px;text-align:right;-webkit-user-select:none;user-select:none}.color-picker-text{flex:1;min-width:0;background:#111;border:1px solid #333;border-radius:4px;color:#ccc;padding:3px 5px;font-size:11px;font-family:monospace;text-align:center}.color-picker-text:focus{outline:none;border-color:#3a7bd5}.shader-menu-category{font-size:10px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.05em;padding:6px 8px 2px}.shader-menu-item{background:none;border:1px solid transparent;border-radius:6px;color:#bbb;padding:6px 10px;font-size:13px;cursor:pointer;text-align:left;transition:background .12s,border-color .12s,color .12s;font-family:inherit;width:100%}.shader-menu-item:hover{background:#1e1e1e;color:#e0e0e0}.shader-menu-item.active{background:#1a2a3a;border-color:#3a7bd5;color:#fff}.shader-menu-divider{height:1px;background:#2a2a2a;margin:4px 0}.shader-param-panel-title{font-size:10px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.05em;padding:2px 0}.ledger-heading{font-size:10px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;font-family:system-ui,-apple-system,sans-serif}.ledger-row{display:flex;align-items:center;gap:6px;padding:2px 0;line-height:1.4}.ledger-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 4px currentColor}.ledger-count{margin-left:auto;color:#e0e0e0;font-variant-numeric:tabular-nums}.ledger-likelihood{margin-left:auto;width:1.4em;height:1.4em;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#e0e0e0}.ledger-mute{background:none;border:none;cursor:pointer;font-size:12px;padding:0 2px;line-height:1;opacity:.5;transition:opacity .15s}.ledger-mute:hover{opacity:1}.ledger-mute.muted{opacity:.9}.ledger-unmute-all{background:none;border:none;cursor:pointer;font-size:12px;padding:0;line-height:1;opacity:.5;transition:opacity .15s}.ledger-unmute-all:hover{opacity:1}.cof-container{display:flex;flex-direction:column;gap:8px;align-items:center}.cof-preset-row{display:flex;align-items:center;gap:8px;width:100%}.cof-preset-label{font-size:12px;color:#999;flex-shrink:0}.cof-preset-select{background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#ccc;padding:4px 6px;font-size:12px;font-family:inherit;flex:1;cursor:pointer}.cof-preset-select:focus{outline:none;border-color:#3a7bd5}.cof-preset-select option{background:#1a1a1a;color:#ccc}floating-window>div{display:flex;flex-direction:column;gap:10px}#error-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility 0s .3s,z-index 0s .3s}#error-overlay.visible{z-index:10000;opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s ease,visibility 0s,z-index 0s}#error-overlay.visible .error-quote{animation:error-fade-in .3s ease}.error-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;backdrop-filter:saturate(180%) blur(30px);-webkit-backdrop-filter:saturate(180%) blur(30px)}.error-quote{position:relative;margin:0;background:#1e1e1e;border:1px solid #2a2a2a;border-radius:10px;padding:40px 52px;max-width:480px;text-align:center}.error-quote blockquote{margin:0;padding:0;border:none}.error-quote blockquote p{margin:0;font-family:Georgia,Times New Roman,serif;font-size:18px;font-style:italic;line-height:1.6;color:#e0e0e0;letter-spacing:.02em}.error-quote figcaption{margin-top:16px;font-family:system-ui,-apple-system,sans-serif;font-size:14px;color:#999}.error-quote figcaption cite{font-style:normal;color:#5b9bd5}@keyframes error-fade-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
