:root{color:#fff;background:#111;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;background:#111;width:100%;height:100%;margin:0;overflow:hidden}body{width:100dvw;height:100dvh;position:fixed;inset:0}button{font:inherit}#application-canvas{touch-action:none;outline:none;margin:0;padding:0;display:block;position:fixed;inset:0;width:100dvw!important;height:100dvh!important}@supports not (height:100dvh){body,#application-canvas{width:100vw;height:100vh}}.hidden{display:none!important}#loading-screen{z-index:100;background:#0a0a0cf5;place-items:center;display:grid;position:fixed;inset:0}.loading-panel{width:min(560px,100vw - 48px)}.loading-title{margin-bottom:7px;font-size:22px;font-weight:650}.loading-filename{opacity:.58;text-overflow:ellipsis;white-space:nowrap;margin-bottom:18px;font-size:13px;overflow:hidden}.progress-track{background:#ffffff21;border-radius:999px;width:100%;height:7px;overflow:hidden}.progress-fill{border-radius:inherit;background:#ffffffeb;width:0;height:100%;transition:width .12s linear}.progress-fill.indeterminate{animation:1s ease-in-out infinite alternate loading-pulse}.loading-text{opacity:.72;margin-top:10px;font-size:13px}@keyframes loading-pulse{0%{opacity:.3;transform:translate(0)}to{opacity:1;transform:translate(280%)}}.enter-button{z-index:90;color:#fff;-webkit-backdrop-filter:blur(14px);cursor:pointer;background:#121214c2;border:1px solid #ffffff59;border-radius:999px;padding:12px 22px;position:fixed;bottom:82px;left:50%;transform:translate(-50%)}#hud{z-index:30;pointer-events:none;position:fixed;inset:0}.controls{color:#ffffffc2;-webkit-backdrop-filter:blur(8px);background:#0000006b;border-radius:9px;padding:8px 11px;font-size:12px;position:absolute;bottom:16px;left:18px}.debug{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));color:#ffffffb3;background:#00000057;border-radius:8px;padding:7px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;position:absolute}.mobile-controls,.touch-device #controls-desktop{display:none}.touch-device .mobile-controls{z-index:50;pointer-events:none;width:100dvw;height:100dvh;display:block;position:fixed;inset:0}.move-zone{left:max(18px, env(safe-area-inset-left));bottom:max(20px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(5px);pointer-events:auto;touch-action:none;background:#0003;border:1px solid #ffffff38;border-radius:50%;width:132px;height:132px;position:absolute}.move-stick{background:#ffffff29;border:1px solid #ffffff52;border-radius:50%;width:56px;height:56px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.look-zone{pointer-events:auto;touch-action:none;position:absolute;inset:0 0 0 42%}.vertical-buttons{right:max(20px, env(safe-area-inset-right));bottom:max(24px, env(safe-area-inset-bottom));pointer-events:auto;flex-direction:column;gap:10px;display:flex;position:absolute}.vertical-buttons button{color:#fff;-webkit-backdrop-filter:blur(8px);touch-action:none;background:#0000004d;border:1px solid #ffffff40;border-radius:50%;width:58px;height:58px;padding:0;font-size:24px}.quality-selector{top:max(20px, env(safe-area-inset-top));right:max(20px, env(safe-area-inset-right));z-index:1000;color:#fff;-webkit-backdrop-filter:blur(12px);background:#0000008c;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex;position:fixed}.quality-selector select{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:6px;outline:none;padding:5px 8px}.quality-selector option{color:#000}.touch-device .debug{display:none}.touch-device .quality-selector{top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));border-radius:9px;gap:5px;padding:6px 8px;font-size:12px}.touch-device .quality-selector select{padding:4px 5px;font-size:12px}.touch-device .move-zone{left:max(14px, env(safe-area-inset-left));bottom:max(14px, env(safe-area-inset-bottom));width:clamp(96px,16vmin,116px);height:clamp(96px,16vmin,116px)}.touch-device .move-stick{width:44%;height:44%}.touch-device .vertical-buttons{right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));gap:8px}.touch-device .vertical-buttons button{width:clamp(46px,8vmin,54px);height:clamp(46px,8vmin,54px);font-size:22px}@media (width<=700px){.loading-panel{width:min(460px,100vw - 32px)}.loading-title{font-size:18px}.loading-filename,.loading-text{font-size:12px}.enter-button{bottom:max(34px, calc(env(safe-area-inset-bottom) + 20px));padding:10px 18px;font-size:13px}}@media (orientation:landscape) and (pointer:coarse){.touch-device .move-zone{left:max(14px, env(safe-area-inset-left));bottom:max(12px, env(safe-area-inset-bottom));width:100px;height:100px}.touch-device .move-stick{width:44px;height:44px}.touch-device .vertical-buttons{right:max(14px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));gap:7px}.touch-device .vertical-buttons button{width:48px;height:48px;font-size:21px}.touch-device .quality-selector{top:max(8px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));padding:5px 7px;font-size:11px}.touch-device .quality-selector select{padding:3px 5px;font-size:11px}}.loading-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.loading-actions button{color:#fff;cursor:pointer;touch-action:manipulation;background:#ffffff1a;border:1px solid #ffffff59;border-radius:10px;min-height:44px;padding:10px 18px}.loading-actions button:hover{background:#ffffff2e}.loading-actions button:focus-visible{outline-offset:3px;outline:2px solid #fff}body.touch-device{inset:auto;left:var(--tour-left,0px);top:var(--tour-top,0px);width:var(--tour-width,100%);height:var(--tour-height,100%)}.touch-device #application-canvas,.touch-device #loading-screen,.touch-device #hud,.touch-device .mobile-controls{position:absolute;width:100%!important;height:100%!important}.touch-device .quality-selector,.touch-device .enter-button{position:absolute}.touch-device .move-zone{z-index:2;left:calc(env(safe-area-inset-left,0px) + 24px);bottom:calc(env(safe-area-inset-bottom,0px) + 24px)}.move-stick{pointer-events:none}.touch-device .look-zone{z-index:1}.touch-device .vertical-buttons{z-index:2;right:calc(env(safe-area-inset-right,0px) + 24px);bottom:calc(env(safe-area-inset-bottom,0px) + 24px)}.touch-device .move-zone,.touch-device .look-zone,.touch-device .vertical-buttons button{-webkit-touch-callout:none}.touch-device .quality-selector{top:calc(env(safe-area-inset-top,0px) + 8px);right:calc(env(safe-area-inset-right,0px) + 16px)}.touch-device .quality-selector select{min-height:36px}
