:root{--void:#07061a;--night:#100d2e;--violet:#3b2576;--purple:#5d3194;--lilac:#c7a2f2;--aqua:#33d3c4;--mint:#9af7e0;--amber:#ffb54a;--snow:#f1f0ff;--frost:#b8c2e8;--font:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, "Liberation Mono", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--void);height:100%;color:var(--snow);font-family:var(--font);touch-action:none;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#app{position:fixed;inset:0}#game{touch-action:none;width:100%;height:100%;display:block}#ui{pointer-events:none;position:absolute;inset:0}button,input,select,summary{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}kbd{border:2px solid var(--purple);background:var(--void);text-align:center;border-bottom-width:3px;min-width:1.6em;margin:0 .1em;padding:0 .3em;font-size:.85em;display:inline-block}.screen{z-index:10;pointer-events:auto;background:#07061a8c;justify-content:center;align-items:center;padding:16px;transition:opacity .7s;display:flex;position:absolute;inset:0}.screen[hidden]{display:none}.screen.fade{opacity:0;pointer-events:none}.start{background:radial-gradient(at 50% 40%,#3b25768c,#07061aeb)}.panel{border:3px solid var(--purple);width:100%;max-width:30rem;max-height:calc(100dvh - 32px);box-shadow:6px 6px 0 var(--void);touch-action:pan-y;-webkit-user-select:text;user-select:text;background:#100d2ef2;padding:20px 22px;overflow-y:auto}.panel h1{letter-spacing:.08em;text-transform:uppercase;color:var(--mint);text-shadow:3px 3px 0 var(--violet);margin:0 0 4px;font-size:1.6rem}.panel h2{color:var(--lilac);margin:18px 0 6px;font-size:.95rem}.tag{color:var(--frost);margin:0 0 16px}.fine{color:var(--frost);margin:14px 0 0;font-size:.78rem}.error{color:var(--amber)}.big{border:3px solid var(--void);background:var(--aqua);width:100%;min-height:48px;color:var(--void);letter-spacing:.05em;cursor:pointer;box-shadow:4px 4px 0 var(--violet);margin:8px 0 12px;padding:10px 14px;font-size:1.05rem;font-weight:700;display:block}.big:hover{background:var(--mint)}.big:active{box-shadow:2px 2px 0 var(--violet);transform:translate(2px,2px)}.controls{margin:0;padding-left:1.1em;font-size:.88rem;line-height:1.9}.controls-touch{display:none}body.touch-mode .controls-touch{display:block}body.touch-mode .controls-desktop{display:none}fieldset{border:2px solid var(--violet);margin:10px 0;padding:8px 12px 10px}legend{color:var(--lilac);padding:0 6px}.row{flex-wrap:wrap;align-items:center;gap:8px 10px;min-height:44px;font-size:.9rem;display:flex}.row input[type=range]{min-width:6rem;min-height:32px;accent-color:var(--aqua);flex:8rem}.row input[type=checkbox]{width:22px;height:22px;accent-color:var(--aqua)}.row select{background:var(--void);border:2px solid var(--purple);min-height:36px;padding:2px 6px}.val,.auto-level{min-width:3.5em;color:var(--mint)}details{margin-top:8px}summary{cursor:pointer;min-height:44px;color:var(--lilac);align-items:center;display:flex}.scene-fade{z-index:1;opacity:0;visibility:hidden;pointer-events:none;background:#000;position:absolute;inset:0}.hud{z-index:2;opacity:0;transition:opacity .6s;position:absolute;inset:0}.hud.playing{opacity:1}.dissolve{width:100%;height:100%;image-rendering:pixelated;opacity:0;mix-blend-mode:screen;position:absolute;inset:0}.crosshair{background:var(--snow);width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #07061acc}.cooldown{opacity:0;width:22px;height:22px;margin:10px 0 0 10px;position:absolute;top:50%;left:50%}.cooldown.on{opacity:1}.cooldown svg{width:100%;height:100%;transform:rotate(-90deg)}.cooldown circle{fill:none;stroke-width:3px}.cooldown .track{stroke:#07061a99}.cooldown .arc{stroke:var(--aqua)}.prompt{border:2px solid var(--aqua);width:max-content;max-width:calc(100% - 32px);color:var(--mint);text-align:center;pointer-events:none;background:#100d2ed1;padding:6px 10px;font-size:.85rem;position:absolute;top:15%;left:50%;transform:translate(-50%)}.hint{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));border:2px solid var(--violet);text-align:center;background:#100d2ee0;width:max-content;max-width:calc(100% - 32px);padding:8px 12px;font-size:.85rem;transition:opacity 1.5s .5s;position:absolute;transform:translate(-50%)}.hint.gone{opacity:0}.mute{top:calc(10px + env(safe-area-inset-top));right:calc(10px + env(safe-area-inset-right));border:2px solid var(--violet);pointer-events:auto;cursor:pointer;background:#100d2ed9;min-width:44px;min-height:44px;padding:6px 10px;font-size:.8rem;position:absolute}.fps,.debug{left:calc(10px + env(safe-area-inset-left));color:var(--mint);background:#07061acc;margin:0;padding:4px 8px;font-size:.75rem;position:absolute}.fps{top:calc(10px + env(safe-area-inset-top))}.debug{top:calc(40px + env(safe-area-inset-top));white-space:pre;line-height:1.5}.rotate{border:3px solid var(--purple);text-align:center;pointer-events:auto;background:#100d2ef2;width:min(20rem,100% - 32px);padding:14px;position:absolute;top:28%;left:50%;transform:translate(-50%)}.rotate[hidden]{display:none}.rotate p{margin:0 0 10px}.rotate button{border:2px solid var(--void);background:var(--aqua);min-width:88px;min-height:44px;color:var(--void);font-weight:700}.touch{display:none;position:absolute;inset:0}.touch.shown{display:block}body:not(.playing) .touch{display:none}.touch-look{pointer-events:auto;touch-action:none;width:50%;position:absolute;top:0;bottom:0;right:0}.joy{left:calc(28px + env(safe-area-inset-left));bottom:calc(28px + env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;background:#100d2e59;border:3px solid #c7a2f28c;border-radius:50%;width:132px;height:132px;position:absolute}.joy-knob{background:#33d3c4bf;border:3px solid #07061a99;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%}.touch-buttons{right:calc(20px + env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom));pointer-events:auto;grid-template-columns:64px 64px;grid-template-areas:"tele sprint"".jump";gap:12px;display:grid;position:absolute}.tbtn{min-width:44px;min-height:44px;color:var(--snow);touch-action:none;pointer-events:auto;background:#3b2576cc;border:3px solid #07061ab3;border-radius:50%;font-size:.75rem;font-weight:700}.touch-buttons .tbtn{width:64px;height:64px}.tbtn-jump{color:var(--void);background:#33d3c4cc;grid-area:jump}.tbtn-sprint{grid-area:sprint}.tbtn-sprint.on{background:var(--amber);color:var(--void)}.tbtn-tele{background:#8e52c8d9;grid-area:tele}.touch-context{right:calc(16px + env(safe-area-inset-right));bottom:calc(184px + env(safe-area-inset-bottom));pointer-events:none;gap:12px;display:flex;position:absolute}.touch-context .tbtn{width:64px;height:64px;color:var(--void);background:#ff62b5d9;border-radius:14px}.touch-context .tbtn-act2{background:#9af7e0d9}.tbtn-pause{top:calc(10px + env(safe-area-inset-top));right:calc(110px + env(safe-area-inset-right));border-radius:6px;width:44px;height:44px;position:absolute}@media (prefers-reduced-motion:reduce){.screen,.hud,.hint{transition:none}}body.touch-mode .hint{bottom:auto;top:calc(64px + env(safe-area-inset-top))}.scene-fade.loading:after{content:"Loading…";color:var(--lilac);font-size:.9rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.travel-row{flex-wrap:wrap;gap:8px;display:flex}.travel-row button{border:2px solid var(--violet);cursor:pointer;background:#100d2ee6;flex:6rem;min-height:44px}.travel-row button:disabled{opacity:.45;cursor:default}.collection h3{color:var(--lilac);margin:10px 0 4px;font-size:.85rem}.collection ul{margin:0;padding-left:.2rem;font-size:.8rem;line-height:1.6;list-style:none}.minimap{top:calc(62px + env(safe-area-inset-top));right:calc(10px + env(safe-area-inset-right));border:2px solid var(--violet);pointer-events:none;width:112px;height:112px;image-rendering:pixelated;background:#07061a8c;border-radius:50%;position:absolute}.toast{left:50%;top:calc(64px + env(safe-area-inset-top));border:2px solid var(--gold,#f2c14e);width:max-content;max-width:calc(100% - 160px);color:var(--mint);pointer-events:none;opacity:0;background:#100d2ee0;padding:6px 12px;font-size:.85rem;position:absolute;transform:translate(-50%)}.toast.show{animation:3s forwards toast}@keyframes toast{0%{opacity:0}10%{opacity:1}75%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.toast.show{opacity:1;animation:none}}body:not(.playing) .minimap{display:none}.wolf-menu{left:50%;bottom:calc(90px + env(safe-area-inset-bottom));border:2px solid var(--aqua);pointer-events:auto;background:#100d2ee0;flex-wrap:wrap;justify-content:center;gap:6px;max-width:calc(100% - 32px);padding:8px;display:flex;position:absolute;transform:translate(-50%)}.wolf-menu[hidden]{display:none}.wolf-menu button{border:2px solid var(--violet);min-height:44px;color:var(--mint);font:inherit;cursor:pointer;background:#07061ab3;padding:6px 12px;font-size:.85rem}.wolf-menu button.current{border-color:var(--aqua)}.wolf-menu kbd{color:var(--aqua)}
