:root{--canvas-opacity: 1}*{margin:0;padding:0;touch-action:none}body{overflow:hidden;font-family:Arial,sans-serif;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}canvas{opacity:var(--canvas-opacity);position:fixed;top:0;left:0;width:100%;height:100%}body:after{content:"";position:fixed;top:0;left:0;width:1px;height:1px;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);pointer-events:none}button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.hidden{display:none!important}.spacer{flex-grow:1}#ui{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none}#ui *{pointer-events:auto}.walkHint{position:absolute;top:max(60px,env(safe-area-inset-top));left:50%;transform:translate(-50%);background-color:#000000b3;color:#fff;font-size:14px;padding:10px 20px;border-radius:8px;cursor:pointer;pointer-events:auto;white-space:nowrap}#viewerBranding{position:absolute;top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));display:flex;align-items:center;gap:6px;text-decoration:none;white-space:nowrap;cursor:pointer;transition:color .15s ease;color:#e0dcdd}#viewerBranding:hover{color:#fff}#viewerBranding>svg{height:16px;width:auto;flex-shrink:0;padding:8px;border-radius:6px;background-color:#0000004d}#viewerBranding>span{font-size:14px;font-weight:700;text-shadow:-1px -1px 0 rgba(0,0,0,.4),1px -1px 0 rgba(0,0,0,.4),-1px 1px 0 rgba(0,0,0,.4),1px 1px 0 rgba(0,0,0,.4)}#poster{display:none;position:absolute;top:0;left:0;width:100%;height:100%;background-image:var(--poster-url);background-size:cover;background-position:center;background-repeat:no-repeat}#loadingWrap{position:fixed;bottom:120px;left:50%;transform:translate(-50%);width:min(380px,100vw - 32px);display:flex;flex-direction:column;padding:16px}#loadingWrap>#loadingText{font-size:18px;color:#fff;text-align:center;text-shadow:0 0 4px rgba(0,0,0,.5)}#loadingWrap>#loadingBar{width:100%;height:10px;margin-top:8px;border-radius:4px;overflow:hidden}#controlsWrap{position:absolute;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column}#controlsWrap.faded-in{visibility:visible;opacity:1;transition:opacity .5s ease-out}#controlsWrap.faded-out{visibility:hidden;opacity:0;transition:visibility 0s .5s,opacity .5s ease-out}#controlsWrap>#timelineContainer{height:30px;cursor:pointer}#controlsWrap>#timelineContainer>#line{width:100%;height:50%;border-bottom:4px solid #d9d9d9}#controlsWrap>#timelineContainer>#handle{position:absolute;top:16.5px;width:12px;height:12px;transform:translate(-50%,-50%);border:2px solid #d9d9d9;border-radius:50%;background-color:#dfe3ea}#controlsWrap>#timelineContainer>#time{position:absolute;top:0;padding:2px 4px;transform:translate(-50%,-100%);font-size:12px;border-radius:4px;color:#fff;background-color:#28282880}#controlsWrap>#buttonsContainer{display:flex;gap:8px}#controlsWrap>#buttonsContainer .buttonGroup{display:flex;background-color:#0000004d;border-radius:6px}#controlsWrap>#buttonsContainer .buttonGroup:not(:has(>:not(.hidden))){display:none}#controlsWrap>#buttonsContainer .controlButton{width:34px;height:34px;padding:0;margin:0;border:0;cursor:pointer;color:#e0dcdd;background-color:transparent}#controlsWrap>#buttonsContainer .controlButton:hover{color:#fff}#controlsWrap>#buttonsContainer .controlButton>svg{display:block;margin:auto}#controlsWrap>#buttonsContainer .controlButton>svg>g.stroke{fill:none;stroke:#000;stroke-width:2;stroke-linejoin:round;opacity:.4}#controlsWrap>#buttonsContainer .controlButton>svg>g.fill{fill:currentColor;stroke:none}#controlsWrap>#buttonsContainer .controlButton.active:not(.toggle){color:#dfe3ea}#controlsWrap>#buttonsContainer .controlButton.toggle{background:linear-gradient(90deg,transparent 0%,transparent 50%,#dfe3ea 50%,#dfe3ea 100%);background-size:200% 100%;background-position:100% 0%;background-repeat:no-repeat;transition:background-position .1s ease-in-out}#controlsWrap>#buttonsContainer .controlButton.toggle.left{border-radius:4px 0 0 4px}#controlsWrap>#buttonsContainer .controlButton.toggle.left:not(.active){background-position:0% 0%}#controlsWrap>#buttonsContainer .controlButton.toggle.middle{border-radius:0}#controlsWrap>#buttonsContainer .controlButton.toggle.middle:not(.active){background-position:0% 0%}#controlsWrap>#buttonsContainer .controlButton.toggle.right{border-radius:0 4px 4px 0}#controlsWrap>#buttonsContainer .controlButton.toggle.right:not(.active){background-position:200% 0%}#settingsPanel{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 70px);padding:12px;border-radius:16px;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:14px;color:#e0dcdd;background-color:#333c;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}#settingsPanel>.settingsRow{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%}#settingsPanel>.settingsRow>button{flex-grow:1;height:34px;padding:0 20px;border:1px solid rgba(255,255,255,.1);border-radius:8px;font-size:13px;cursor:pointer;color:#aaa;background-color:#ffffff0a;transition:background-color .25s ease,color .25s ease}#settingsPanel>.settingsRow>button:hover{color:#fff;background-color:#ffffff1a}#settingsPanel>.settingsRow>div{height:34px;display:flex;align-items:center;padding:0 8px;cursor:pointer;color:#aaa}#settingsPanel>.settingsRow>div.toggleSwitch{padding:0 4px}#settingsPanel>.settingsRow>div.toggleSwitch .toggleTrack{width:36px;height:20px;border-radius:10px;background-color:#ffffff26;position:relative;transition:background-color .2s ease}#settingsPanel>.settingsRow>div.toggleSwitch .toggleTrack .toggleThumb{width:16px;height:16px;border-radius:50%;background-color:#777;position:absolute;top:2px;left:2px;transition:transform .2s ease,background-color .2s ease}#settingsPanel>.settingsRow>div.toggleSwitch.active .toggleTrack{background-color:rgba(255,255,255,.18)}#settingsPanel>.settingsRow>div.toggleSwitch.active .toggleTrack .toggleThumb{transform:translate(16px);background-color:#dfe3ea}#settingsPanel>.settingsRow>div:hover{color:#e0dcdd}#settingsPanel>.divider{width:100%;height:1px;margin:8px 0;background-color:#ffffff14}#infoPanel{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;backdrop-filter:blur(2px)}#infoPanel>#infoPanelContent{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:360px;height:min(80vh,640px);border-radius:16px;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;overflow:hidden;color:#e0dcdd;background-color:#333333d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}#infoPanel>#infoPanelContent>#viewerTitle{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 16px;flex-shrink:0;background-color:#00000026;border-bottom:1px solid rgba(255,255,255,.06);text-decoration:none;white-space:nowrap;color:#e0dcdd}#infoPanel>#infoPanelContent>#viewerTitle>svg{height:20px;width:auto;flex-shrink:0}#infoPanel>#infoPanelContent>#viewerTitle>svg>g.stroke{fill:#000;stroke:#000;stroke-width:2;stroke-linejoin:round;opacity:.4}#infoPanel>#infoPanelContent>#viewerTitle>svg>g.fill{fill:#dfe3ea;stroke:none}#infoPanel>#infoPanelContent>#viewerTitle>.title-name{font-size:14px;font-weight:700}#infoPanel>#infoPanelContent>#viewerTitle>.title-version{font-size:12px;font-weight:400;color:#aaa;margin-left:-2px}#infoPanel>#infoPanelContent>#viewerTitle[href]{cursor:pointer;transition:color .15s ease}#infoPanel>#infoPanelContent>#viewerTitle[href]:hover{color:#fff}#infoPanel>#infoPanelContent>#infoPanels{padding:16px;flex:1 1 auto;min-height:0;overflow-y:auto}#infoPanel>#infoPanelContent>#infoPanels::-webkit-scrollbar{width:6px}#infoPanel>#infoPanelContent>#infoPanels::-webkit-scrollbar-track{background:transparent}#infoPanel>#infoPanelContent>#infoPanels::-webkit-scrollbar-thumb{background-color:#ffffff1f;border-radius:3px}#infoPanel>#infoPanelContent>#infoPanels h1{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:4px 0 8px;color:#dfe3ea}#infoPanel>#infoPanelContent>#infoPanels .control-item{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:5px 8px;margin:0 -8px;border-radius:6px;font-size:13px}#infoPanel>#infoPanelContent>#infoPanels .control-item>.control-action{text-align:left}#infoPanel>#infoPanelContent>#infoPanels .control-item>.control-key{text-align:right;color:#aaa;font-size:12px}#infoPanel>#infoPanelContent>#infoPanels .control-item:nth-child(odd){background-color:#ffffff08}#infoPanel>#infoPanelContent>#infoPanels .control-spacer{margin:14px 0}#infoPanel>#infoPanelContent>#tabs{display:flex;gap:24px;padding:8px 16px;justify-content:center;flex-shrink:0;border-top:1px solid rgba(255,255,255,.06)}#infoPanel>#infoPanelContent>#tabs>.tab{padding:8px 4px;border-bottom:2px solid transparent;cursor:pointer;font-weight:700;font-size:13px;color:#aaa;transition:color .15s ease,border-color .15s ease}#infoPanel>#infoPanelContent>#tabs>.tab:hover{color:#fff}#infoPanel>#infoPanelContent>#tabs>.tab.active{color:#fff;border-bottom-color:#dfe3ea}#joystickBase{position:absolute;width:56px;height:100px;transform:translate(-50%,-50%);border-radius:28px;touch-action:none;background:linear-gradient(180deg,#0004,#0000 30% 70%,#0004);background-color:#0003;border:2px solid rgba(255,255,255,.2);transition:width .2s ease,height .2s ease,border-radius .2s ease}#joystickBase>#joystick{position:absolute;left:8px;width:40px;height:40px;border-radius:50%;touch-action:none;background-color:#fff8;box-shadow:0 2px 8px #0000004d;transition:left .1s ease}#joystickBase.mode-2d{width:100px;height:100px;border-radius:50px;background:radial-gradient(circle,#0000 40%,#0004);background-color:#0003}#joystickBase.mode-2d>#joystick{left:30px}#xrModal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center}#xrModal>#xrModalContent{width:min(360px,100vw - 32px);padding:20px;border-radius:16px;border:1px solid rgba(255,255,255,.1);color:#e0dcdd;background-color:#333333e6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}#xrModal>#xrModalContent>h2{font-size:16px;font-weight:700;color:#fff;margin-bottom:12px}#xrModal>#xrModalContent>p{font-size:13px;line-height:1.4;color:#e0dcdd;margin-bottom:16px}#xrModal>#xrModalContent>#xrModalButtons{display:flex;justify-content:flex-end;gap:8px}#xrModal>#xrModalContent>#xrModalButtons>button{height:34px;padding:0 20px;border:1px solid rgba(255,255,255,.1);border-radius:8px;font-size:13px;cursor:pointer;color:#aaa;background-color:#ffffff0a;transition:background-color .25s ease,color .25s ease}#xrModal>#xrModalContent>#xrModalButtons>button:hover{color:#fff;background-color:#ffffff1a}#xrModal>#xrModalContent>#xrModalButtons>button#xrModalOk{color:#fff;background-color:rgba(255,255,255,.16);border-color:rgba(255,255,255,.28)}#xrModal>#xrModalContent>#xrModalButtons>button#xrModalOk:hover{background-color:#dfe3ea}#tooltip{display:none;position:absolute;border-radius:4px;padding:4px;font-size:12px;color:#e0dcdd;background-color:#282828}#annotations{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1}#annotations *{pointer-events:auto}#annotationNav{pointer-events:none}#annotationNav.faded-in{visibility:visible;opacity:1;transition:opacity .5s ease-out}#annotationNav.faded-out{visibility:hidden;opacity:0;transition:visibility 0s .5s,opacity .5s ease-out}#annotationNav>button{pointer-events:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;margin:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#e0dcdd;background-color:#0000004d}#annotationNav>button:hover{color:#fff;background-color:#00000080}#annotationNav>button>svg{display:block}#annotationNav>button>svg>g.stroke{fill:none;stroke:#000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:.4}#annotationNav>button>svg>g.fill{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#annotationNav.desktop{position:absolute;top:max(16px,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:0;border-radius:6px;overflow:hidden;background-color:#0009}#annotationNav.desktop>button{width:34px;height:34px;background-color:transparent}#annotationNav.desktop>button:hover{background-color:#ffffff1a}#annotationNav.desktop>#annotationInfo{pointer-events:none;display:flex;align-items:center;justify-content:center;padding:0 12px;white-space:nowrap;width:240px}#annotationNav.desktop>#annotationInfo>#annotationNavTitle{font-size:14px;color:#fff;overflow:hidden;text-overflow:ellipsis}#annotationNav.touch{position:fixed;top:0;left:0;width:100%;height:100%}#annotationNav.touch>#annotationInfo{display:none}#annotationNav.touch>button{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:80px;background-color:#0000004d}#annotationNav.touch>button:active{background-color:#0006}#annotationNav.touch>#annotationPrev{left:max(0px,env(safe-area-inset-left));border-radius:0 6px 6px 0}#annotationNav.touch>#annotationNext{right:max(0px,env(safe-area-inset-right));border-radius:6px 0 0 6px}