:root{color-scheme:dark;--void: #050506;--char: #0c0c0e}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%}body{display:grid;place-items:center;overflow:hidden;height:100dvh;overscroll-behavior:none;background:radial-gradient(ellipse 70% 60% at 50% 46%,#131316,#08080a 52%,#000),var(--void);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#stage{position:relative;display:grid;place-items:center;width:100%;height:100%;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#stage:fullscreen{padding:0;background:radial-gradient(ellipse 75% 70% at 50% 48%,#101013,#070708 55%,#000),#000}#stage:fullscreen #game{max-width:100%;max-height:100%}#game{display:block;width:1280px;height:768px;max-width:100%;max-height:100%;background:var(--void);image-rendering:pixelated;image-rendering:crisp-edges;outline:none}#touch-controls{display:none;position:absolute;z-index:10;left:0;right:0;bottom:0;align-items:flex-end;justify-content:space-between;gap:18px;padding:24px max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body.touch-ui #touch-controls{display:flex}body.touch-ui #game{touch-action:none}@media(orientation:portrait){body.touch-ui #stage{padding-bottom:calc(200px + env(safe-area-inset-bottom))}body.touch-ui #touch-controls{padding-bottom:max(18px,env(safe-area-inset-bottom))}}@media(orientation:landscape){body.touch-ui #touch-controls{padding-bottom:max(10px,env(safe-area-inset-bottom))}}.touch-dpad{--pad: clamp(44px, 12vmin, 56px);display:grid;grid-template-columns:repeat(3,var(--pad));grid-template-rows:repeat(3,var(--pad));gap:3px;pointer-events:auto;touch-action:none}.touch-dir,.touch-action{appearance:none;-webkit-appearance:none;border:1px solid rgba(128,128,128,.55);background:#090909cc;color:#bdbdbd;margin:0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;-webkit-tap-highlight-color:transparent;touch-action:none;cursor:pointer;transition:background 80ms linear,border-color 80ms linear,transform 80ms linear,color 80ms linear}.touch-dir{display:grid;place-items:center;width:var(--pad);height:var(--pad);border-radius:5px;box-shadow:0 2px 10px #00000073;font-size:calc(var(--pad) * .36);line-height:1}.touch-up{grid-area:1 / 2}.touch-left{grid-area:2 / 1}.touch-hub{grid-area:2 / 2;align-self:center;justify-self:center;width:6px;height:6px;border-radius:50%;background:#3a3a3a;box-shadow:0 0 8px #fff3;pointer-events:none}.touch-right{grid-area:2 / 3}.touch-down{grid-area:3 / 2}.touch-actions{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:auto;touch-action:none}.touch-prompt{position:absolute;right:0;bottom:calc(100% + 10px);padding:5px 8px;border:1px solid rgba(255,255,255,.34);background:#060606e0;color:#d9d9d9;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(10px,3vmin,12px);line-height:1.25;letter-spacing:.06em;white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity .12s linear,transform .12s linear}.touch-prompt[hidden]{display:none}.touch-prompt.is-visible{opacity:1;transform:translateY(0)}.touch-action{--size: clamp(56px, 15vmin, 72px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:var(--size);height:var(--size);border-radius:50%;box-shadow:0 2px 14px #0000008c}.touch-secondary{display:flex;align-items:center;justify-content:center;gap:8px}.touch-weather,.touch-torch{--size: clamp(48px, 12vmin, 56px)}.touch-torch.is-on{border-color:#ffffff9e;box-shadow:inset 0 0 18px #ffffff1a,0 0 14px #ffffff1a,0 2px 14px #0000008c}.touch-torch.is-on .touch-key{color:#f2f2f2}.touch-torch.is-on .touch-label{color:#ccc}.touch-key{color:#e6e6e6;font-size:clamp(13px,3.4vmin,16px);font-weight:600;line-height:1}.touch-label{color:#a0a0a0;font-size:clamp(8px,2vmin,10px);letter-spacing:.06em;line-height:1}.touch-weather .touch-label{font-size:clamp(7px,1.8vmin,9px);letter-spacing:.03em}.touch-use{border-color:#ffffff9e;box-shadow:inset 0 0 22px #ffffff1a,0 0 18px #ffffff1f,0 2px 14px #0000008c}.touch-use .touch-key{font-size:clamp(18px,4.6vmin,22px)}.touch-dir.is-down,.touch-action.is-down{color:#fff;background:#fff3;border-color:#d9d9d9;transform:scale(.94)}.touch-action.is-down{box-shadow:inset 0 0 28px #ffffff47,0 0 26px #ffffff38}.touch-dir:focus-visible,.touch-action:focus-visible{outline:1px solid #d9d9d9;outline-offset:2px}#dev-panel{position:absolute;z-index:20;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;flex-direction:column;gap:7px;max-width:calc(100vw - 24px);padding:9px 12px;border:1px solid #303030;background:#060606eb;color:#b3b3b3;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.08em;pointer-events:auto;-webkit-user-select:none;user-select:none}#dev-panel[hidden],body.touch-ui #dev-panel{display:none}.dev-heading{display:flex;align-items:baseline;justify-content:center;gap:10px;white-space:nowrap}.dev-tag{color:#f2f2f2;font-weight:600}.dev-clock{color:#e0e0e0;font-size:14px;letter-spacing:.1em}.dev-phase{color:#a0a0a0}.dev-note{color:#555}.dev-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.dev-actions button{appearance:none;-webkit-appearance:none;margin:0;padding:3px 6px;border:1px solid #363636;background:#111;color:#9d9d9d;font-family:inherit;font-size:9px;letter-spacing:.08em;cursor:pointer}.dev-actions button:hover,.dev-actions button.is-active{border-color:#d9d9d9;background:#ffffff29;color:#f2f2f2}#fallback{display:none;position:absolute;inset:0;margin:auto;height:fit-content;max-width:30ch;padding:2rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.08em;line-height:1.6;color:#a0a0a0;text-align:center}
