:root{color-scheme:dark;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:#0b1220;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}@media(orientation:landscape)and (pointer:coarse){html.game-playing,html.game-playing body{width:100%;height:100%;overflow:hidden;position:fixed;inset:0}html.game-playing #app{position:fixed;top:0;left:0;width:100dvh;height:100dvw;max-width:100dvh;max-height:100dvw;transform:rotate(90deg) translateY(-100%);transform-origin:top left}}@supports not (height: 100dvh){@media(orientation:landscape)and (pointer:coarse){html.game-playing #app{width:100vh;height:100vw;max-width:100vh;max-height:100vw}}}#viewport{position:absolute;inset:0;overflow:hidden;z-index:1}#world{position:absolute;left:50%;top:50%;transform-origin:center center;will-change:transform,width,height;background:#1a1714}#map{position:absolute;inset:0;width:100%;height:100%;background:#1a1714}#map-warm{position:fixed;left:-10000px;top:0;width:512px;height:512px;opacity:0;pointer-events:none;overflow:hidden;z-index:-1}#overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}#hud{position:absolute;inset:0;z-index:3;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:max(16px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));color:#f4f7fb;text-shadow:0 1px 2px rgba(0,0,0,.8)}#minimap{position:absolute;right:16px;top:16px;width:170px;height:170px;z-index:4;pointer-events:none;border-radius:12px;background:#060a148c;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#hud-stats{font-variant-numeric:tabular-nums;font-size:14px;line-height:1.5;white-space:pre}#hud-help{font-size:13px;opacity:.85}.teleport{position:absolute;left:16px;bottom:52px;z-index:4;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:#060a14b8;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#f4f7fb;pointer-events:auto}.teleport label{font-size:12px;opacity:.85;white-space:nowrap}.teleport input{width:min(320px,48vw);padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.18);background:#00000059;color:#f4f7fb;font:inherit;font-variant-numeric:tabular-nums;font-size:13px}.teleport input:focus{outline:1px solid rgba(159,208,255,.55);border-color:#9fd0ff73}.teleport input.invalid{border-color:#e65a5ab3}.teleport button{padding:6px 12px;border-radius:6px;border:1px solid rgba(255,255,255,.18);background:#ffffff1a;color:#f4f7fb;font:inherit;font-size:13px;cursor:pointer}.teleport button:hover{background:#ffffff29}.teleport button:disabled{opacity:.5;cursor:default}.pilot{position:absolute;right:16px;bottom:52px;z-index:4;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:#060a14b8;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#f4f7fb;pointer-events:auto}.pilot label{font-size:12px;opacity:.85;white-space:nowrap}.pilot input{width:min(160px,36vw);padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.18);background:#00000059;color:#f4f7fb;font:inherit;font-size:13px}.pilot input:focus{outline:1px solid rgba(159,208,255,.55);border-color:#9fd0ff73}.pilot button{padding:6px 12px;border-radius:6px;border:1px solid rgba(255,255,255,.18);background:#ffffff1a;color:#f4f7fb;font:inherit;font-size:13px;cursor:pointer}.pilot button:hover{background:#ffffff29}.panel{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));padding:24px;border-radius:12px;background:#0c1220eb;color:#f4f7fb;border:1px solid rgba(255,255,255,.12);box-shadow:0 16px 40px #00000073}.panel h1{margin:0 0 12px;font-size:1.5rem}.panel p{margin:0 0 10px;line-height:1.45}.panel code{font-size:.9em;color:#9fd0ff}.panel .muted{opacity:.75;font-size:.92rem}.hidden{display:none!important}#start-screen{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#000;pointer-events:auto}.start-screen-content{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;gap:14px;justify-content:center;position:relative;z-index:2}#start-screen-image{width:auto;height:100%;max-width:100%;object-fit:contain;border-radius:0;position:relative;z-index:1;pointer-events:none;box-shadow:0 18px 50px #0009;-webkit-user-select:none;user-select:none}#start-continue-hint{margin:0;padding:0 16px;position:absolute;left:50%;bottom:28px;transform:translate(-50%);z-index:2;color:#f4f7fb;font-family:Segoe UI,system-ui,sans-serif;font-weight:700;font-size:clamp(15px,3.5vw,20px);letter-spacing:.04em;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.75);pointer-events:none;animation:start-hint-pulse 1.8s ease-in-out infinite;white-space:nowrap}#start-continue-hint.hidden{display:none}@keyframes start-hint-pulse{0%,to{opacity:.55}50%{opacity:1}}#start-button{padding:14px 26px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#ffffff1f;color:#f4f7fb;font-family:Segoe UI,system-ui,sans-serif;font-weight:900;letter-spacing:.02em;font-size:22px;cursor:pointer;position:absolute;left:50%;bottom:26px;transform:translate(-50%);z-index:2;pointer-events:auto;text-shadow:0 2px 10px rgba(0,0,0,.65)}#start-button:hover{background:#ffffff2e}#start-button:disabled{opacity:.6;cursor:default}#start-subtitle{font-size:13px;opacity:.8}#confirm-overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#000000a6;pointer-events:auto}#confirm-panel{width:min(520px,calc(100vw - 32px));padding:20px 22px;border-radius:12px;background:#0c1220f2;color:#f4f7fb;border:1px solid rgba(255,255,255,.12);box-shadow:0 16px 40px #00000073}#confirm-message{font-weight:800;font-size:16px;margin-bottom:14px}#confirm-actions{display:flex;justify-content:flex-end;gap:10px}#confirm-no,#confirm-yes{padding:10px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#ffffff1f;color:#f4f7fb;font:inherit;font-size:14px;cursor:pointer}#confirm-no:hover,#confirm-yes:hover{background:#ffffff2e}#touch-controls{position:absolute;inset:0;z-index:6;pointer-events:none;touch-action:none;user-select:none;-webkit-user-select:none;--touch-pad: clamp(40px, 11vmin, 58px);--touch-pad-sm: clamp(34px, 9vmin, 44px);--touch-fire: clamp(72px, 18vmin, 110px);--touch-gap: clamp(4px, 1vmin, 8px);--touch-stack-gap: clamp(6px, 1.4vmin, 10px);--touch-edge: max(8px, env(safe-area-inset-left));--touch-edge-r: max(8px, env(safe-area-inset-right));--touch-edge-b: max(10px, env(safe-area-inset-bottom))}#touch-controls.hidden{display:none!important}.touch-cluster{position:absolute;pointer-events:auto;display:grid;gap:var(--touch-gap)}.touch-left-stack{position:absolute;left:var(--touch-edge);bottom:var(--touch-edge-b);display:flex;flex-direction:column-reverse;align-items:flex-start;gap:var(--touch-stack-gap);pointer-events:none}.touch-left-stack .touch-cluster{position:static;pointer-events:auto}.touch-move{grid-template-columns:repeat(3,var(--touch-pad));grid-template-rows:repeat(4,var(--touch-pad));grid-template-areas:". up ." "turnL . turnR" "strafeL . strafeR" ". down ."}.touch-move [data-action=thrust]{grid-area:up}.touch-move [data-action=turnLeft]{grid-area:turnL}.touch-move [data-action=turnRight]{grid-area:turnR}.touch-move [data-action=swayLeft]{grid-area:strafeL}.touch-move [data-action=swayRight]{grid-area:strafeR}.touch-move [data-action=brake]{grid-area:down}.touch-exit{position:absolute;top:max(8px,env(safe-area-inset-top));right:var(--touch-edge-r);width:clamp(40px,10vmin,48px);height:clamp(40px,10vmin,48px);border-radius:12px;font-size:clamp(16px,4vmin,20px);pointer-events:auto;z-index:7;background:#280c0ca6;border-color:#ff8c7866}.touch-btn.touch-exit{width:clamp(40px,10vmin,48px);height:clamp(40px,10vmin,48px)}.touch-tilt{position:absolute;top:max(8px,env(safe-area-inset-top));left:var(--touch-edge);width:clamp(52px,13vmin,64px);height:clamp(40px,10vmin,48px);border-radius:12px;font-size:clamp(11px,2.8vmin,13px);letter-spacing:.04em;pointer-events:auto;z-index:7}.touch-btn.touch-tilt{width:clamp(52px,13vmin,64px);height:clamp(40px,10vmin,48px)}.touch-alt{grid-template-columns:repeat(2,var(--touch-pad-sm))}.touch-fire-wrap{right:var(--touch-edge-r);bottom:var(--touch-edge-b);display:flex;flex-direction:column;align-items:center;gap:var(--touch-stack-gap)}.touch-btn{width:var(--touch-pad);height:var(--touch-pad);margin:0;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:clamp(10px,2.5vmin,16px);background:#080e1c8c;color:#f4f7fb;font:inherit;font-size:clamp(14px,4vmin,20px);font-weight:700;line-height:1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 4px 16px #00000059;touch-action:none;-webkit-tap-highlight-color:transparent}.touch-btn-sm{width:var(--touch-pad-sm);height:var(--touch-pad-sm);border-radius:clamp(8px,2vmin,12px);font-size:clamp(10px,2.6vmin,13px)}.touch-fire{width:var(--touch-fire);height:var(--touch-fire);border-radius:50%;font-size:clamp(12px,3vmin,16px);letter-spacing:.04em;background:#b4281cb8;border-color:#ffb48c73}.touch-btn.touch-fire{width:var(--touch-fire);height:var(--touch-fire)}.touch-btn.is-pressed,.touch-btn:active{background:#ffffff47;transform:scale(.96)}.touch-btn.is-latched{background:#ffb43c8c;border-color:#ffd278b3;box-shadow:0 0 0 2px #ffbe5059}.touch-btn.is-denied{background:#b4281cbf;border-color:#ff7864b3;animation:touch-denied-shake .35s ease}@keyframes touch-denied-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.touch-fire.is-pressed,.touch-fire:active{background:#dc4628e6}@media(hover:hover)and (pointer:fine){#touch-controls.is-active{display:none!important}}@media(max-width:720px){#hud{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}#hud-help{display:none}#hud-stats{font-size:12px;line-height:1.35;max-width:min(46vw,180px);width:fit-content;overflow:visible;padding:6px 8px;border-radius:8px;background:#060a1473;margin-top:clamp(44px,11vmin,56px)}#minimap{width:100px;height:100px;right:max(62px,calc(env(safe-area-inset-right) + 54px));top:max(8px,env(safe-area-inset-top))}.teleport,.pilot{display:none!important}#touch-controls{--touch-pad: clamp(36px, 10vmin, 52px);--touch-pad-sm: clamp(32px, 8vmin, 40px);--touch-fire: clamp(68px, 17vmin, 100px)}}@media(max-height:520px),(max-width:720px)and (orientation:landscape){#touch-controls{--touch-pad: clamp(32px, 8.5vmin, 44px);--touch-pad-sm: clamp(28px, 7vmin, 36px);--touch-fire: clamp(58px, 14vmin, 80px);--touch-gap: clamp(3px, .8vmin, 6px);--touch-stack-gap: clamp(4px, 1vmin, 8px)}#minimap{width:72px;height:72px;right:max(50px,calc(env(safe-area-inset-right) + 44px))}}
