:is(html:has(#viewer),body:has(#viewer)){color:#fff;touch-action:none;overscroll-behavior:none;background:#5f5f5c;width:100%;height:100%;position:fixed;inset:0;overflow:hidden}#viewer{touch-action:none;width:100%;height:100%;margin:0;position:fixed;inset:0;overflow:hidden}body:has(#viewer) canvas{width:100%;height:100%;display:block}.loading{z-index:20;background:#5f5f5c;flex-direction:column;justify-content:center;align-items:center;gap:18px;transition:opacity .3s,visibility .3s;display:flex;position:fixed;inset:0}.loading.done{opacity:0;visibility:hidden;pointer-events:none}.logo{object-fit:contain;width:112px;height:112px}.progress-track{background:#ffffff35;border-radius:99px;width:min(280px,70vw);height:5px;overflow:hidden}.progress-bar{background:#ff526d;width:0;height:100%;transition:width .15s}.loading p{margin:0;font-size:14px}.hint{z-index:5;opacity:0;white-space:nowrap;pointer-events:none;background:#171717a6;border-radius:99px;padding:9px 14px;font-size:13px;transition:all .25s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px)}.hint.visible{opacity:1;transform:translate(-50%)}.joystick{z-index:8;left:22px;bottom:calc(22px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);touch-action:none;background:#12121238;border:1px solid #ffffff4d;border-radius:50%;width:82px;height:82px;display:none;position:fixed}.joystick-knob{background:#ffffffb8;border-radius:50%;width:32px;height:32px;position:absolute;top:25px;left:25px;box-shadow:0 2px 10px #0005}.help-button{z-index:10;color:#eeece8;width:38px;height:38px;top:calc(18px + env(safe-area-inset-top));cursor:pointer;background:#34343280;border:1px solid #ffffff30;border-radius:50%;font-size:18px;font-weight:700;position:fixed;right:18px}.instructions{z-index:25;background:#1717171f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.instructions[hidden]{display:none}.instructions-card{color:#efeeeb;-webkit-backdrop-filter:blur(18px)saturate(115%);backdrop-filter:blur(18px)saturate(115%);background:#353532a8;border:1px solid #ffffff24;border-radius:16px;width:min(340px,100vw - 40px);padding:22px;position:relative;box-shadow:0 18px 48px #0004}.instructions-card strong{color:#f1efec;letter-spacing:.01em;padding-right:28px;font-size:16px;font-weight:500;display:block}.instructions-card p{color:#e7e4dfd9;margin:13px 0 0;font-size:13.5px;font-weight:400;line-height:1.5}.instructions-card p b{color:#d8b0a8;font-weight:500}.instructions-close{color:#ffffffb8;cursor:pointer;background:0 0;border:0;padding:4px;font-size:23px;line-height:1;position:absolute;top:12px;right:13px}.instructions-ready{color:#f0eeeb;cursor:pointer;background:#ffffff12;border:1px solid #c9988f66;border-radius:99px;width:100%;margin-top:19px;padding:9px 16px;font-size:13.5px;font-weight:500}.instructions-mobile{display:none}.room-indicator{z-index:9;color:#e9e7e2;min-width:92px;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#34343270;border:1px solid #ffffff20;border-radius:10px;padding:7px 10px;position:fixed}.room-indicator span{color:#ffffff85;letter-spacing:.06em;text-transform:uppercase;font-size:9px;line-height:1.2;display:block}.room-indicator strong{letter-spacing:.01em;margin-top:2px;font-size:12px;font-weight:500;display:block}.error{z-index:30;text-align:center;background:#343432;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:30px;display:flex;position:fixed;inset:0}.error[hidden]{display:none}.error span{opacity:.7}.error button{color:#fff;background:#ff526d;border:0;border-radius:99px;padding:12px 22px;font-weight:700}@media (pointer:coarse){.joystick{display:block}.hint{bottom:calc(22px + env(safe-area-inset-bottom));left:auto;right:16px;transform:translateY(12px)}.hint.visible{transform:none}.instructions-desktop{display:none}.instructions-mobile{display:block}.help-button{top:calc(14px + env(safe-area-inset-top));right:14px}}.instructions-card{width:min(410px,100vw - 40px);padding:24px 26px}.instructions-card>strong{color:#d3aa87;letter-spacing:.22em;text-transform:uppercase;font-size:13px;font-weight:600}.control-row{border-top:1px solid #ffffff14;grid-template-columns:132px 1fr;align-items:center;min-height:108px;display:grid}.instructions-desktop,.instructions-mobile{border-bottom:1px solid #ffffff14;margin-top:18px}.control-copy{padding-left:15px}.control-copy b{color:#efede9;letter-spacing:.17em;text-transform:uppercase;font-size:13px;font-weight:500;display:block}.control-copy small{color:#ffffff70;letter-spacing:.02em;margin-top:6px;font-size:11px;display:block}.key-cluster{grid-template-rows:repeat(2,34px);grid-template-columns:repeat(3,34px);justify-content:center;gap:5px;display:grid}.key{color:#e8e6e2;background:#ffffff08;border:1px solid #ffffff38;border-bottom-color:#ffffff5c;border-radius:7px;place-items:center;font-size:12px;font-weight:500;display:grid;box-shadow:0 2px #0005}.key-w{grid-column:2}.mouse-icon,.touch-icon{border:2px solid #dedbd6;border-radius:22px;width:42px;height:61px;margin:auto;position:relative}.mouse-icon:after{content:"";background:#dedbd6;width:1px;height:17px;position:absolute;top:0;left:19px}.mouse-icon i{background:#c99a73;border-radius:14px 0 0;width:18px;height:18px;position:absolute;top:1px;left:1px}.mouse-icon em,.touch-icon em{color:#c99a73;letter-spacing:-4px;font-size:22px;font-style:normal;position:absolute;top:16px;left:48px}.joystick-icon{border:1px solid #ffffff38;border-radius:50%;width:64px;height:64px;margin:auto;position:relative}.joystick-icon i{background:#d2ceca;border:2px solid #575450;border-radius:50%;width:28px;height:28px;position:absolute;top:8px;left:27px;box-shadow:0 4px 12px #0004}.touch-icon{border-top-color:#0000;border-radius:18px 18px 12px 12px;height:58px}.touch-icon:before{content:"";background:#d7d3ce;border-radius:8px;width:8px;height:27px;position:absolute;top:-7px;left:15px}.touch-icon i{background:#c99a73;border-radius:8px;width:6px;height:13px;position:absolute;top:-5px;left:16px}@media (pointer:coarse){.instructions-card{width:min(360px,100vw - 32px);padding:22px}.control-row{grid-template-columns:112px 1fr;min-height:104px}.control-copy{padding-left:10px}}.key-cluster .key:nth-child(2){grid-area:2/1}.key-cluster .key:nth-child(3){grid-area:2/2}.key-cluster .key:nth-child(4){grid-area:2/3}.room-indicator{left:18px;right:auto}.space-key{color:#e8e6e2;text-align:center;letter-spacing:.04em;background:#ffffff08;border:1px solid #ffffff38;border-bottom-color:#ffffff5c;border-radius:7px;width:96px;margin:auto;padding:8px 10px;font-size:10px;font-weight:500;box-shadow:0 2px #0005}.mouse-look-status{z-index:11;color:#eae7e2;top:calc(18px + env(safe-area-inset-top));letter-spacing:.03em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#3434328c;border:1px solid #ffffff24;border-radius:99px;padding:7px 12px;font-size:11px;position:fixed;left:50%;transform:translate(-50%)}.mouse-look-status[hidden]{display:none}@media (pointer:coarse){.room-indicator{bottom:calc(116px + env(safe-area-inset-bottom))}.mouse-look-status{display:none}}.free-look-visual{justify-content:center;align-items:center;gap:7px;display:flex}.free-look-visual .space-key{width:64px;margin:0;padding:7px 6px}.action-arrow{color:#bfa58d;font-size:13px}.free-mouse{border:1.5px solid #ddd9d4;border-radius:10px;width:20px;height:29px;animation:1.7s ease-in-out infinite intakeMouseHint;position:relative}.free-mouse i{background:#c99a73;border-radius:3px;width:3px;height:7px;position:absolute;top:4px;left:7px}.control-copy small+small{color:#ffffff59;margin-top:2px}@keyframes intakeMouseHint{0%,to{transform:translate(-4px)}50%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.free-mouse{animation:none}}.free-cursor{fill:#ffffff0d;stroke:#ddd9d4;stroke-width:1.4px;stroke-linejoin:round;width:18px;height:23px;animation:1.8s ease-in-out infinite intakeCursorHint}@keyframes intakeCursorHint{0%,to{transform:translate(-3px)}50%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.free-cursor{animation:none}}.room-indicator{top:calc(18px + env(safe-area-inset-top));bottom:auto}.movement-keys{z-index:9;left:18px;bottom:calc(18px + env(safe-area-inset-bottom));transform-origin:0 100%;pointer-events:none;grid-template-rows:repeat(2,27px);grid-template-columns:repeat(3,27px);gap:4px;display:grid;position:fixed;transform:scale(1.6)}.hud-key{color:#dedbd6;background:#ffffff08;border:1px solid #ffffff30;border-bottom-color:#ffffff4a;border-radius:6px;place-items:center;font-size:10px;font-weight:500;transition:color 80ms,background 80ms,border-color 80ms,transform 80ms,box-shadow 80ms;display:grid;box-shadow:0 2px #0004}.hud-key-w{grid-column:2}.movement-keys .hud-key:nth-child(2){grid-area:2/1}.movement-keys .hud-key:nth-child(3){grid-area:2/2}.movement-keys .hud-key:nth-child(4){grid-area:2/3}.hud-key.active{color:#fff;background:#c99a7359;border-color:#dfb28e;transform:translateY(1px);box-shadow:0 0 9px #d4a27a42}@media (pointer:coarse){.room-indicator{top:calc(14px + env(safe-area-inset-top));bottom:auto}.movement-keys{display:none}}.hint{display:none!important}.finger-swipe-icon{width:82px;height:62px;margin:auto;position:relative}.finger-swipe-icon svg{fill:#ffffff0d;stroke:#ddd9d4;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:42px;height:42px;animation:1.8s ease-in-out infinite intakeFingerSwipe;position:absolute;top:0;left:20px}.finger-swipe-icon .finger-nail{fill:#c99a7352;stroke:#c99a73;stroke-width:1.5px}.finger-swipe-icon span{color:#c99a73;font-size:21px;line-height:1;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@keyframes intakeFingerSwipe{0%,to{transform:translate(-7px)}50%{transform:translate(7px)}}@media (prefers-reduced-motion:reduce){.finger-swipe-icon svg{animation:none}}.joystick{width:90px;height:90px}.joystick-knob{width:35px;height:35px;top:27px;left:27px}.tour-tray{z-index:9;max-width:min(590px,100vw - 250px);left:50%;bottom:calc(13px + env(safe-area-inset-bottom));scrollbar-width:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#343432a6;border:1px solid #ffffff1f;border-radius:14px;gap:8px;padding:7px 8px;display:flex;position:fixed;overflow-x:auto;transform:translate(-50%);box-shadow:0 8px 24px #0003}.tour-tray::-webkit-scrollbar{display:none}.tour-card{color:#dedbd6;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;flex:0 0 88px;padding:0 0 3px;transition:background .16s,color .16s}.tour-card>span:last-child{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.09em;text-transform:uppercase;margin:5px 3px 0;font-size:9px;font-weight:500;display:block;overflow:hidden}.tour-thumb{background:#242423;border:1px solid #fff2;border-radius:8px;width:88px;height:48px;display:block;position:relative;overflow:hidden}.tour-thumb img{object-fit:cover;filter:saturate(.78)brightness(.8);width:100%;height:100%;transition:filter .16s,transform .25s;display:block}.tour-thumb i{color:#f2efeb;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#2f2e2bbf;border:1px solid #ffffff29;border-radius:50%;place-items:center;width:21px;height:21px;font-size:8px;font-style:normal;display:grid;position:absolute;bottom:5px;right:5px}.tour-card:hover,.tour-card:focus-visible{color:#f3f0eb;background:#ffffff0b;outline:none}.tour-card:hover .tour-thumb img{filter:saturate(.9)brightness(.92);transform:scale(1.025)}.tour-card.active{color:#e0b18a;background:#ffffff0d}.tour-card.active .tour-thumb{border-color:#d5a67f}.tour-card.active .tour-thumb img{filter:saturate(.9)brightness(.9)}.tour-card.active .tour-thumb i{color:#312e2a;background:#d5a67fe8}.fov-indicator{z-index:12;color:#ece9e4;right:18px;bottom:calc(108px + env(safe-area-inset-bottom));letter-spacing:.06em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#3434329c;border:1px solid #ffffff20;border-radius:99px;padding:6px 10px;font-size:10px;position:fixed}.fov-indicator[hidden]{display:none}@media (max-width:760px){.tour-tray{max-width:calc(100vw - 132px);left:auto;right:12px;transform:none}.tour-card{flex-basis:74px}.tour-thumb{width:74px;height:42px}}@media (pointer:coarse){.tour-tray{bottom:calc(112px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);left:12px;right:12px}.tour-card{flex-basis:76px}.tour-thumb{width:76px;height:43px}.fov-indicator{display:none}}
