*{box-sizing:border-box}html,body{color:#e8e8e8;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:100%;overscroll-behavior:none;background:#1b1f24;height:100%;margin:0;font:15px/1.35 -apple-system,system-ui,sans-serif;overflow:hidden}body,#stage{position:fixed;inset:0}#stage canvas{touch-action:none;display:block}#hud{top:env(safe-area-inset-top);pointer-events:none;background:#0000008c;flex-wrap:wrap;gap:10px;padding:4px 8px;font:12px/1.3 ui-monospace,Menlo,monospace;display:flex;position:fixed;left:0;right:0}#banner{top:calc(env(safe-area-inset-top) + 24px);background:#2d3a4a;border-radius:8px;align-items:center;gap:8px;padding:8px;display:flex;position:fixed;left:8px;right:8px}#banner .grow{flex:1}#prompt{top:calc(env(safe-area-inset-top) + 24px);pointer-events:none;text-align:center;background:#3c280ae6;border-radius:8px;padding:8px;position:fixed;left:8px;right:8px}#tabs{padding-bottom:env(safe-area-inset-bottom);z-index:5;background:#11151a;border-top:1px solid #333;display:flex;position:fixed;bottom:0;left:0;right:0}#tabs button{color:#aaa;background:0 0;border:0;flex:1;min-height:44px;padding:12px 0;font-size:12px}#tabs button.on{color:#fff;background:#222a33;font-weight:600}#sheet{left:0;right:0;bottom:calc(45px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;touch-action:pan-y;z-index:4;background:#11151af0;border-top:1px solid #333;max-height:42vh;padding:6px 8px;position:fixed;overflow-y:auto}#sheet.collapsed .body{display:none}#panel{top:env(safe-area-inset-top);left:0;right:0;bottom:calc(45px + env(safe-area-inset-bottom));touch-action:pan-y;z-index:3;-webkit-user-select:text;user-select:text;background:#1b1f24;padding:10px;display:none;position:fixed;overflow-y:auto}#panel.open{display:block}h3{margin:10px 0 6px;font-size:15px}.row{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0;display:flex}button.b{color:#fff;background:#2f3b48;border:1px solid #4a5868;border-radius:8px;min-height:40px;padding:8px 10px;font-size:14px}button.b.on{background:#3d6b4a;border-color:#6a994e}button.b.warn{background:#6b3d3d}.mono{white-space:pre-wrap;word-break:break-word;font:12px/1.35 ui-monospace,Menlo,monospace}.small{color:#aaa;font-size:12px}select,input[type=text]{color:#fff;background:#222a33;border:1px solid #4a5868;border-radius:6px;padding:6px;font-size:16px}textarea{color:#ddd;background:#111;width:100%;height:50vh;font:12px/1.35 ui-monospace,Menlo,monospace}.card{background:#232a32;border-radius:8px;margin:6px 0;padding:8px}.ok{color:#8fd18f}.bad{color:#ff8f8f}
