:root{color-scheme:dark;--gg-ink: #c8d0da;--gg-dim: #7c8794;--gg-panel: rgb(16 20 26 / 82%);--gg-edge: #232b34;--gg-active: #2c3a49;--gg-bound: #7f6ad6;--gg-free: #d8b24a;--gg-warn: #e2764f}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#0b0d10;color:var(--gg-ink);font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;-webkit-text-size-adjust:100%}#world{position:fixed;inset:0;display:block;width:100%;height:100%;touch-action:none;cursor:grab}#world.is-drawing{cursor:crosshair}#ui{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}#ui>*{pointer-events:auto}@media(min-width:48rem){body.gg-rules-open #ui{padding-right:30rem}}.gg-hud{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin:.5rem;padding:.4rem .7rem;border:1px solid var(--gg-edge);border-radius:8px;background:var(--gg-panel);backdrop-filter:blur(6px)}.gg-stat{color:var(--gg-dim);white-space:nowrap}.gg-stat b{color:var(--gg-ink);font-weight:600}.gg-seed{font-size:11px}.gg-meter{min-width:12rem}.gg-bar{display:flex;height:6px;overflow:hidden;border-radius:3px;background:#1a2028}.gg-bar-bound{width:0;background:var(--gg-bound)}.gg-bar-free{width:0;background:var(--gg-free)}.gg-meter-label{margin-top:2px;color:var(--gg-dim);font-size:11px}.gg-bound{color:var(--gg-bound)}.gg-free{color:var(--gg-free)}.gg-status{flex:1 1 100%;min-height:1.2em;color:var(--gg-dim);font-size:11px}.gg-status.is-warn{color:var(--gg-warn)}.gg-toolbar{display:flex;flex-direction:column;gap:.35rem;align-items:center;margin:.5rem}.gg-toolbar-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:center}@media(min-width:44rem){.gg-toolbar-row{display:grid;grid-template-columns:1fr auto 1fr;width:100%}.gg-toolbar-row>.gg-tools{justify-self:end}.gg-toolbar-row>.gg-actions{justify-self:start}}.gg-tools,.gg-actions,.gg-nanites,.gg-plan-slot{display:flex;gap:.25rem;padding:.3rem;border:1px solid var(--gg-edge);border-radius:9px;background:var(--gg-panel);backdrop-filter:blur(6px)}.gg-nanites{flex-wrap:wrap;justify-content:center;max-width:min(100%,34rem)}.gg-nanites[hidden]{display:none}.gg-button{min-width:3.2rem;min-height:2.2rem;padding:.35rem .6rem;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--gg-dim);font:inherit;cursor:pointer;touch-action:manipulation}.gg-button:hover{color:var(--gg-ink);background:#1a212a}.gg-button.is-active{border-color:#3a4a5c;background:var(--gg-active);color:#eaf0f7}.gg-help{min-width:2.2rem}.gg-plan{min-width:8rem;min-height:3rem;padding:.55rem 1.6rem;border-color:#3a4a5c;border-radius:8px;background:var(--gg-active);color:#eaf0f7;font-size:1.1rem;letter-spacing:.16em}.gg-plan:hover{background:#35465a;color:#fff}.gg-plan.is-active{border-color:var(--gg-free)}.gg-plan.is-ready{border-color:var(--gg-free);background:var(--gg-free);color:#14181d}.gg-plan.is-ready:hover{background:#e9c869;color:#14181d}.gg-hint{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;background:#06080bb8}.gg-hint[hidden]{display:none}.gg-hint-card{max-width:30rem;padding:1.2rem 1.4rem;border:1px solid var(--gg-edge);border-radius:12px;background:#12161c}.gg-hint-card h1{margin:0 0 .2rem;font-size:1.1rem;letter-spacing:.08em}.gg-hint-sub{margin:0 0 .9rem;color:var(--gg-dim)}.gg-hint-row{display:flex;gap:.7rem;margin-bottom:.5rem}.gg-hint-gesture{flex:0 0 7.5rem;color:var(--gg-free)}.gg-hint-meaning{flex:1 1 auto}.gg-hint-dismiss{margin-top:.9rem;border-color:#3a4a5c;background:var(--gg-active);color:#eaf0f7}.gg-rules{position:fixed;top:0;right:0;bottom:0;z-index:2;display:flex;flex-direction:column;width:min(30rem,100vw);border-left:1px solid var(--gg-edge);background:#0e1116f5;backdrop-filter:blur(8px)}.gg-rules[hidden]{display:none}.gg-rules-header{display:flex;gap:.6rem;align-items:baseline;padding:.6rem .8rem;border-bottom:1px solid var(--gg-edge)}.gg-rules-header h2{margin:0;font-size:.95rem;letter-spacing:.08em}.gg-rules-versions{flex:1 1 auto;color:var(--gg-dim);font-size:11px}.gg-rules-close{min-width:2.2rem}.gg-rules-presets,.gg-rules-footer{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;padding:.5rem .8rem;border-bottom:1px solid var(--gg-edge)}.gg-rules-footer{flex-direction:column;align-items:stretch;border-top:1px solid var(--gg-edge);border-bottom:0}.gg-rules-actions{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}.gg-rules-legend{margin-left:.4rem;color:var(--gg-dim);font-size:11px}.gg-rules-body{flex:1 1 auto;overflow-y:auto;padding:0 .8rem 1rem;overscroll-behavior:contain}.gg-rules-group{margin:.9rem 0 0}.gg-rules-group h3{margin:0;color:var(--gg-free);font-size:12px;font-weight:600}.gg-rules-blurb{margin:.15rem 0 .5rem;color:var(--gg-dim);font-size:11px}.gg-rules-field{display:grid;grid-template-columns:11rem 1fr;gap:.2rem .5rem;align-items:center;margin-bottom:.25rem}.gg-rules-label{color:var(--gg-dim);overflow-wrap:anywhere}.gg-rules-error{grid-column:2;color:var(--gg-warn);font-size:11px}.gg-rules-error:empty{display:none}.gg-input,.gg-select,.gg-rules-json,.gg-rules-rows{min-width:0;padding:.3rem .4rem;border:1px solid var(--gg-edge);border-radius:5px;background:#0f1319;color:var(--gg-ink);font:inherit}.gg-input.is-invalid,.gg-select.is-invalid{border-color:var(--gg-warn)}.gg-input-narrow{width:4.5rem}.gg-rules-json,.gg-rules-rows{width:100%;resize:vertical;white-space:pre}.gg-rules-pattern{display:grid;grid-template-columns:1fr 4.5rem 2.4rem;gap:.3rem;margin-bottom:.4rem}.gg-rules-pattern .gg-rules-rows{grid-column:1 / -1}.gg-rules-pattern .gg-button{min-width:2.4rem}.gg-rules-summary,.gg-rules-status{color:var(--gg-dim);font-size:11px;white-space:pre-wrap}.gg-rules-summary{color:var(--gg-warn)}.gg-rules-summary:empty,.gg-rules-status:empty{display:none}.gg-rules-status.is-warn{color:var(--gg-warn)}.gg-primary{border-color:#3a4a5c;background:var(--gg-active);color:#eaf0f7}.gg-button:disabled{opacity:.45;cursor:not-allowed}.gg-fatal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;color:var(--gg-warn);text-align:center;white-space:pre-wrap}
