:root{color-scheme:dark}html,body{margin:0;height:100%;height:100dvh;background:#000;overflow:hidden;touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none}#app{position:relative;display:flex;align-items:center;justify-content:center;height:100%;height:100dvh}#screen{image-rendering:pixelated;display:block;touch-action:none}#status{position:fixed;bottom:6px;left:0;right:0;text-align:center;font:12px monospace;color:#8a8a8a;pointer-events:none}#touch-controls{position:absolute;inset:0;pointer-events:none}#touch-controls button{position:absolute;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.35);border-radius:50%;background:#28283066;color:#fffc;font-size:22px;line-height:1}#touch-controls button:active,#touch-controls button.held{background:#78788c99}#dpad{position:absolute;left:4vmin;bottom:4vmin;width:39vmin;height:39vmin}#dpad .pad{width:13vmin;height:13vmin}.pad-up{left:13vmin;top:0}.pad-left{left:0;top:13vmin}.pad-right{right:0;top:13vmin}.pad-down{left:13vmin;bottom:0}#fire-btn{right:5vmin;bottom:8vmin;width:18vmin;height:18vmin;font-size:28px!important;color:#ff7878e6!important}#menu-btn{right:5vmin;top:5vmin;width:11vmin;height:11vmin}#map-btn{left:4vmin;top:5vmin;width:24vmin;height:11vmin;border-radius:10px!important;font-size:15px!important;font-weight:600;letter-spacing:2px}#play-btn{position:absolute;left:12px;top:12px;padding:8px 18px;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:#28283099;color:#ffffffe6;font:700 16px/1 Geneva,Verdana,sans-serif;letter-spacing:2px;cursor:pointer}#play-btn:active{background:#78788cb3}#fullscreen-btn{position:absolute;top:6px;right:6px;width:28px;height:28px;border:1px solid rgba(255,255,255,.25);border-radius:4px;background:#28283080;color:#ffffffb3;font-size:16px;cursor:pointer}#net-status{position:absolute;top:12px;right:42px;width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.5);background:#888;pointer-events:none}#net-status.connecting{background:#e0a000}#net-status.connected{background:#25c225}#net-status.dropped{background:#e02020;animation:netblink .8s step-start infinite}@keyframes netblink{50%{opacity:.15}}#rotate-overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#000;color:#cfcfcf;text-align:center;font:16px/1.5 system-ui,sans-serif}.rotate-icon{font-size:48px;animation:rothint 1.6s ease-in-out infinite}@keyframes rothint{0%,to{transform:rotate(-30deg)}50%{transform:rotate(60deg)}}#menu-overlay{position:fixed;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;background:#0006;font-family:Geneva,Verdana,DejaVu Sans,sans-serif;color:#000}.gem-menu{width:min(80vw,240px)}.gem-menu-body{display:flex;flex-direction:column;gap:8px;padding:12px 14px}.gem-menu .gem-btn{width:100%;padding:8px 10px;text-align:center}.gem-menu .gem-default{margin-top:4px}#lobby,#mode-menu,#connect-screen,#waiting-screen,#role-modal,#name-modal{position:fixed;inset:0;z-index:25;display:flex;align-items:center;justify-content:center;background:#0006;overflow:auto;font-family:Geneva,Verdana,DejaVu Sans,sans-serif;color:#000}#role-modal,#name-modal{z-index:30}#debug-overlay{position:fixed;top:8px;left:8px;z-index:40;max-height:94vh;overflow:hidden;pointer-events:none;padding:6px 9px;border:1px solid rgba(255,255,255,.25);border-radius:5px;background:#080a1273}#debug-overlay pre{margin:0;font:11px/1.4 DejaVu Sans Mono,Menlo,monospace;white-space:pre;color:#e1f0fff2;text-shadow:0 1px 1px #000}#names-btn{position:absolute;left:12px;top:56px;padding:6px 18px;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:#28283099;color:#ffffffe6;font:700 14px/1 Geneva,Verdana,sans-serif;letter-spacing:2px;cursor:pointer}#names-btn:active{background:#78788cb3}.con-msg{min-height:16px;font-size:12px;color:#500}.con-actions{gap:10px}.con-rooms{list-style:none;margin:4px 0 0;padding:0;max-height:96px;overflow-y:auto;font-size:12px}.con-rooms li{padding:3px 6px;cursor:pointer;border-bottom:1px solid rgba(0,0,0,.15)}.con-rooms li:hover{background:#00000014}.wait-msg{margin:4px 2px 10px;font-size:13px;line-height:1.5;text-align:center}.gem-dialog{width:min(94vw,460px);margin:auto;background:#cfcfcf;border:2px solid #000;box-shadow:4px 4px #00000073}.gem-title{display:flex;align-items:center;justify-content:center;height:22px;border-bottom:2px solid #000;background:repeating-linear-gradient(#000 0 1px,#cfcfcf 1px 3px)}.gem-title span{padding:0 10px;background:#cfcfcf;font-weight:700;font-size:13px;letter-spacing:1px}.gem-body{display:flex;flex-direction:column;gap:6px;padding:12px 14px}.grow{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:22px;font-size:13px}.grow>label{white-space:nowrap}.gem-btn{min-width:30px;padding:3px 10px;background:#cfcfcf;color:#000;border:1px solid #000;box-shadow:inset 1px 1px #fff,inset -1px -1px #7a7a7a;font:inherit;line-height:1;cursor:pointer}.gem-btn:active{box-shadow:inset -1px -1px #fff,inset 1px 1px #7a7a7a}.gem-default{margin:2px;padding:5px 26px;font-weight:700;outline:2px solid #000;outline-offset:2px}.gem-actions{display:flex;justify-content:center;padding:6px 14px 14px}.gem-input{width:120px;padding:3px 6px;background:#fff;color:#000;border:1px solid #000;box-shadow:inset 1px 1px #7a7a7a;font:inherit}.gem-input.wide{width:190px}.gem-radios{display:inline-flex;gap:14px}.gem-radio{display:inline-flex;align-items:center;gap:5px;background:none;border:none;color:#000;font:inherit;cursor:pointer}.gem-radio:before{content:"";width:12px;height:12px;border:1px solid #000;border-radius:50%;background:#fff;box-sizing:border-box}.gem-radio.sel:before{background:#000;box-shadow:inset 0 0 0 2px #fff}.gem-check{width:16px;height:16px;background:#fff;border:1px solid #000;box-shadow:inset 1px 1px #7a7a7a;font:700 12px/14px Geneva,sans-serif;color:#000;cursor:pointer}.gem-check.on:after{content:"✕"}.gem-sel,.gem-step{display:inline-flex;align-items:center;gap:8px}.gem-sel .maze-val{min-width:92px;text-align:center;font-weight:700;font-size:12px}.gem-step b{min-width:18px;text-align:center;font-weight:700}[hidden]{display:none!important}
