:root{--ink: #1b2226;--panel: rgba(250, 248, 244, .9);--accent: #b4561f;--line: rgba(27, 34, 38, .15);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#c9d3d8;font:15px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink)}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:6px;padding:6px 10px;min-height:36px}button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.top{position:fixed;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;pointer-events:none}.top>*{pointer-events:auto}.brand{color:inherit;text-decoration:none;background:var(--panel);padding:8px 12px;border-radius:8px;font-weight:800;letter-spacing:.08em}.brand span{font-weight:500;letter-spacing:0;margin-left:6px;color:#5b6468}.top-right{display:flex;gap:8px;align-items:center}.lang{color:inherit;text-decoration:none;background:var(--panel);border-radius:8px;min-width:44px;min-height:44px;display:grid;place-items:center;font-weight:700;letter-spacing:.06em;font-size:14px}.lang:hover{color:var(--accent)}.lang:focus-visible,.brand:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.modes{display:flex;gap:6px;background:var(--panel);padding:6px;border-radius:8px}.panel{position:fixed;left:12px;bottom:12px;width:236px;background:var(--panel);border-radius:10px;padding:10px 12px;display:grid;gap:10px;backdrop-filter:blur(6px)}.panel fieldset{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.panel legend{font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#5b6468;margin-bottom:4px}.time{display:grid;gap:4px;font-weight:600}.time span{display:flex;justify-content:space-between}.time output{font-weight:400;color:#5b6468}.time input{width:100%;accent-color:var(--accent)}#minimap{position:fixed;right:12px;bottom:12px;width:220px;height:282px;background:var(--panel);border-radius:10px;cursor:crosshair}[hidden]{display:none!important}.help{position:fixed;left:50%;top:64px;transform:translate(-50%);background:var(--panel);padding:8px 12px;border-radius:8px;display:grid;gap:2px;text-align:center}kbd{border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 5px;background:#fff;font:12px ui-monospace,monospace}.room{position:fixed;left:50%;bottom:16px;transform:translate(-50%);background:var(--panel);padding:6px 12px;border-radius:999px;font-weight:600}.room:empty{display:none}#loading{position:fixed;inset:0;display:grid;place-items:center;background:#e9ecec;z-index:10;transition:opacity .5s}#loading.done{opacity:0;pointer-events:none}.ld-box{display:grid;gap:8px;width:min(320px,80vw);text-align:center}.ld-bar{height:6px;background:#d3d8d9;border-radius:3px;overflow:hidden}.ld-bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}@media(max-width:700px){.panel{width:auto;right:12px;bottom:12px;padding:8px 10px}#minimap,.brand span{display:none}.room{left:auto;right:12px;transform:none;bottom:40px;max-width:46vw;text-align:center}}@media(prefers-reduced-motion:reduce){#loading,.tour-cap{transition:none}}.help-touch,.touch .help-desk{display:none}.touch .help-touch{display:inline}.stick{position:fixed;left:24px;bottom:28px;width:130px;height:130px;border-radius:50%;background:#faf8f459;border:2px solid rgba(250,248,244,.8);touch-action:none;z-index:3}.stick i{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#faf8f4e6;box-shadow:0 2px 8px #00000040}.touch.walking .panel{display:none}.tour-start{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700;min-height:44px;padding:8px 16px;border-radius:8px;box-shadow:0 2px 10px #0000002e}.tour-start:hover{background:#9a4818}.tour-start:disabled{opacity:.6;cursor:progress}.tour{position:fixed;left:50%;bottom:12px;transform:translate(-50%);width:min(620px,calc(100vw - 488px));min-width:300px;background:var(--panel);border-radius:10px;padding:10px 14px;display:grid;gap:8px;backdrop-filter:blur(6px);box-shadow:0 4px 18px #0000002e;z-index:4}.tour-cap{display:grid;gap:2px;min-height:2.8em;transition:opacity .4s}.tour.moving .tour-cap{opacity:.45}.tour-cap b{font-size:17px}.tour-cap span{color:#3a4347}.tour-bar{height:4px;background:#d3d8d9;border-radius:2px;overflow:hidden}.tour-bar i{display:block;height:100%;width:0;background:var(--accent)}.tour-ctl{display:flex;gap:8px;align-items:center}.tour-prog{margin-right:auto;font-size:13px;color:#5b6468;font-variant-numeric:tabular-nums}.tour-ctl button{min-height:40px}.tour-keys{color:#5b6468;font-size:12px}.touring .panel,.touring #room,.touring #help,.touring #stick,.touring .tour-start{display:none!important}@media(max-width:700px){.top{flex-wrap:wrap}.top{gap:8px}.brand{padding:8px 10px;letter-spacing:.04em}.modes{padding:4px;gap:4px}.modes button{padding:6px 8px}.tour-start{order:3;flex:1 1 100%}.help{top:164px}.tour{left:12px;right:12px;width:auto;min-width:0;transform:none}.tour-cap b{font-size:15px}}.toast{position:fixed;left:50%;top:170px;transform:translate(-50%);background:var(--ink);color:#fff;padding:8px 16px;border-radius:999px;font-weight:600;z-index:4;max-width:calc(100vw - 24px);text-align:center}@media(max-width:700px){.toast{top:260px}}.embed-bar{display:none}.embed .top,.embed .panel,.embed #minimap,.embed #help,.embed #room,.embed #stick,.embed #tour,.embed .toast{display:none!important}html.embed,.embed body{background:transparent}.embed #loading{background:transparent;place-items:end stretch}.embed .ld-box{width:100%}.embed .ld-box b,.embed #ld-text{display:none}.embed .ld-bar{height:3px;border-radius:0;background:#ffffff59}.embed .embed-bar{display:flex;position:fixed;left:50%;bottom:14px;transform:translate(-50%);gap:8px;flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100% - 24px)}.embed-bar a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 16px;border-radius:8px;background:var(--panel);color:var(--ink);text-decoration:none;font-weight:700;box-shadow:0 2px 10px #0000002e}.embed-bar a.primary{background:var(--accent);color:#fff}.embed-bar a:hover{filter:brightness(.95)}.embed-bar a:focus-visible{outline:3px solid #fff;outline-offset:2px}
