:root{color:#eef5ef;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-color:#69c7a4b8 #ffffff0f;background:#0d1210;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:visible}body{touch-action:none}#app{isolation:isolate;position:relative}#viewer{cursor:grab;touch-action:none;background:#0d1210;outline:none;width:100vw;height:100dvh;display:block}#viewer:active{cursor:grabbing}.object-panel{z-index:3;top:max(16px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));color:#f8faf9f0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);scrollbar-width:thin;background:#30343294;border:1px solid #ffffff29;border-radius:8px;flex-direction:column;width:min(420px,100vw - 32px);height:calc(100dvh - 32px);padding:12px;transition:transform .26s;display:flex;position:fixed;overflow:visible;box-shadow:0 18px 48px #0000003d}.object-panel[data-collapsed=true]{transform:translateX(calc(-100% - max(16px, env(safe-area-inset-left)) - 1px))}.object-panel-top{flex:none;padding-bottom:10px}.panel-header{justify-content:space-between;align-items:center;gap:10px;padding:2px 2px 10px;display:flex}.panel-header-actions{align-items:center;gap:7px;display:inline-flex}.panel-header h1{color:#f3faf3;letter-spacing:0;margin:0;font-size:15px;font-weight:750;line-height:1.2}.panel-header span{color:#f1f9f3db;text-align:center;background:#5c625f57;border:1px solid #ffffff29;border-radius:999px;min-width:28px;height:22px;font-size:12px;font-weight:700;line-height:20px}.panel-toggle,.panel-handle{color:#f1f9f3eb;cursor:pointer;-webkit-user-select:none;user-select:none;background:#5c625f5c;border:1px solid #ffffff29;font:700 13px/1 inherit}.panel-toggle{border-radius:7px;width:26px;height:22px;padding:0}.panel-toggle:hover,.panel-toggle:focus-visible,.panel-handle:hover,.panel-handle:focus-visible{background:#767e7a75;border-color:#69c7a494;outline:none}.panel-handle{z-index:1;writing-mode:vertical-rl;letter-spacing:0;border-radius:0 8px 8px 0;width:38px;min-height:148px;padding:12px 7px;font-size:20px;position:absolute;top:50%;transform:translateY(-50%)}.panel-handle[hidden]{display:none}.panel-handle-left{right:-38px}.building-info-search{color:#f3faf3f2;letter-spacing:0;background:#181b1a57;border:1px solid #ffffff24;border-radius:7px;outline:none;width:100%;height:34px;margin-bottom:8px;padding:0 10px;font:13px/1.2 inherit}.building-info-search::placeholder{color:#ddece17a}.building-info-search:focus{border-color:#69c7a494}.check-row{color:#f1f9f3f0;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;min-height:32px;font-size:13px;line-height:1.2;display:flex}.check-row input{accent-color:#69c7a4;width:16px;height:16px;margin:0}.check-row small{color:#ddece194;margin-left:auto;font-size:11px}.select-all{background:#5c625f57;border:1px solid #ffffff1f;border-radius:7px;margin:0 0 8px;padding:6px 8px;font-weight:700}.category-tree{flex-wrap:wrap;gap:6px;display:flex}.info-filter{color:#f1f9f3db;cursor:pointer;-webkit-user-select:none;user-select:none;background:#5c625f47;border:1px solid #ddece12e;border-radius:999px;align-items:center;gap:5px;min-height:28px;padding:0 9px;font-size:12px;display:inline-flex}.info-filter input{accent-color:#69c7a4;width:13px;height:13px;margin:0}.info-filter small{color:#ddece194;font-size:11px}.building-info-list{scrollbar-color:#69c7a4b8 #ffffff0f;scrollbar-gutter:stable;scrollbar-width:thin;min-height:0;padding-right:4px;position:relative;overflow:auto}.building-info-list::-webkit-scrollbar{width:10px}.building-info-list::-webkit-scrollbar-track{background:linear-gradient(#ffffff17,#ffffff08),#050a0857;border:1px solid #ffffff14;border-radius:999px}.building-info-list::-webkit-scrollbar-thumb{background:linear-gradient(#9be0c5f2,#348b75e0),#69c7a4b3;border:2px solid #080d0bc2;border-radius:999px;box-shadow:inset 0 1px #ffffff47,0 0 14px #69c7a433}.building-info-list::-webkit-scrollbar-thumb:hover{background:linear-gradient(#bcf6de,#4eb194f5),#69c7a4db;box-shadow:inset 0 1px #ffffff5c,0 0 18px #69c7a457}.building-info-virtual-space{width:100%;position:relative}.building-info-virtual-row{will-change:transform;width:calc(100% - 2px);position:absolute;top:0;left:0}.building-info-card{background:linear-gradient(#ffffff14,#ffffff05),#42474480;border:1px solid #ffffff21;border-radius:8px;gap:8px;margin-bottom:8px;padding:10px;display:grid}.building-info-card[role=button]{cursor:pointer}.building-info-card[role=button]:hover,.building-info-card[role=button]:focus-visible{background:linear-gradient(#ffffff1c,#ffffff08),#525854a3;border-color:#69c7a480;outline:none}.building-info-title{color:#f3faf3;letter-spacing:0;margin:0;font-family:inherit;font-weight:720;line-height:1.25;font-size:20px!important}.building-card-name{display:block;font-size:20px!important}.building-info-card[role=button]:hover .building-info-title,.building-info-card[role=button]:focus-visible .building-info-title{color:#9be0c5}.building-info-tags{flex-wrap:wrap;gap:5px;display:flex}.building-info-tags span{color:#69c7a4f2;background:#69c7a424;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.building-info-card p,.building-info-card dt,.building-info-card dd,.building-info-card span{margin:0;font-size:12px;line-height:1.42}.building-info-card>p{color:#f1f9f3d6}.building-info-card dl{gap:5px;margin:0;display:grid}.building-info-card dl>div{grid-template-columns:52px 1fr;gap:8px;display:grid}.building-info-card dt{color:#f1f9f394}.building-info-card dd{color:#ddece1c7}.building-info-items{gap:6px;display:grid}.building-info-items section{border-left:2px solid #69c7a480;gap:3px;padding-left:8px;display:grid}.building-info-items strong{color:#f3faf3f0;font-size:12px;line-height:1.3}.building-info-items span{color:#69c7a4d1}.building-info-items p{color:#ddece1bd}.building-info-empty{color:#ddece194;place-items:center;min-height:80px;font-size:13px;display:grid}.initial-loader{z-index:5;color:#f1f9f3e6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#141716b8;border:1px solid #ffffff24;border-radius:8px;width:min(420px,100vw - 40px);padding:16px 18px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 48px #0000004d}.initial-loader-text{text-align:center;margin-bottom:11px;font-size:15px;font-weight:700;line-height:1.3}.initial-loader-stage{color:#ddece1ad;text-align:center;margin-top:10px;font-size:12px;line-height:1.4}.progress-track,.lod-progress-track{background:#ffffff24;border-radius:999px;height:8px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg,#69c7a4,#bdf6dc);width:0;height:100%;transition:width .18s}.initial-loader[data-ready=true]{opacity:0;pointer-events:none;transition:opacity .7s}.initial-loader[data-error=true] .progress-fill{background:linear-gradient(90deg,#d87070,#f3b0a8)}.lod-loader{z-index:6;top:max(12px, env(safe-area-inset-top));color:#f1f9f3b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;background:#080d0b80;border:1px solid #ffffff1f;border-radius:7px;grid-template-columns:auto 1fr;align-items:center;gap:8px;width:min(300px,100vw - 48px);padding:6px 8px;font:11px/1.25 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;transition:opacity .26s,transform .26s;display:grid;position:fixed;left:50%;transform:translate(-50%,-6px)}.lod-loader[hidden]{display:none}.lod-loader[data-visible=true]{opacity:1;transform:translate(-50%)}.lod-progress-track{background:#ffffff1a;height:4px}.lod-loader .progress-fill{background:#ddece194;transition:width .22s}.instructions{z-index:2;top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));color:#f1f9f3e6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#30343294;border:1px solid #ffffff24;border-radius:8px;width:min(260px,100vw - 32px);padding:12px 14px;transition:transform .26s;position:fixed;box-shadow:0 16px 40px #00000038}.instructions[data-collapsed=true]{transform:translateX(calc(100% + max(16px, env(safe-area-inset-right)) + 1px))}.instruction-content{gap:10px;display:grid}.instruction-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.instructions h2{color:#f3faf3;letter-spacing:0;margin:0;font-size:14px;font-weight:700;line-height:1.2}.instruction-toggle{flex:none}.instruction-handle{color:#f1f9f3eb;writing-mode:vertical-rl;letter-spacing:0;cursor:pointer;-webkit-user-select:none;user-select:none;background:#5c625f5c;border:1px solid #ffffff29;border-radius:8px 0 0 8px;width:38px;min-height:104px;padding:10px 7px;font:700 16px/1 inherit;position:absolute;top:50%;left:-38px;transform:translateY(-50%)}.instruction-handle[hidden]{display:none}.instruction-handle:hover,.instruction-handle:focus-visible{background:#767e7a75;border-color:#69c7a494;outline:none}.instructions dl{gap:7px;margin:0;display:grid}.instructions dl>div{grid-template-columns:minmax(96px,auto) 1fr;align-items:baseline;gap:10px;display:grid}.instructions dt,.instructions dd{letter-spacing:0;margin:0;font-size:12px;line-height:1.35}.instructions dt{color:#f1f9f3f5;font-weight:650}.instructions dd{color:#ddece1bd}.instructions .touch-instructions{display:none}.activity-board{z-index:3;right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));color:#f8faf9f0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#30343294;border:1px solid #ffffff29;border-radius:8px;width:min(380px,100vw - 32px);max-height:min(440px,100dvh - 32px);padding:12px;transition:transform .26s;position:fixed;overflow:visible;box-shadow:0 18px 48px #0000003d}.activity-board[data-collapsed=true]{transform:translateX(calc(100% + max(16px, env(safe-area-inset-right)) + 1px))}.activity-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px;display:flex}.panel-handle-right{writing-mode:vertical-rl;border-radius:8px 0 0 8px;left:-38px;transform:translateY(-50%)}.activity-header h2{color:#f3faf3;letter-spacing:0;margin:0;font-size:15px;font-weight:750;line-height:1.2}.activity-header span{color:#f1f9f3db;text-align:center;background:#5c625f57;border:1px solid #ffffff29;border-radius:999px;min-width:28px;height:22px;font-size:12px;font-weight:700;line-height:20px}.activity-search{color:#f3faf3f2;letter-spacing:0;background:#181b1a57;border:1px solid #ffffff24;border-radius:7px;outline:none;width:100%;height:34px;margin-bottom:8px;padding:0 10px;font:13px/1.2 inherit}.activity-search::placeholder{color:#ddece17a}.activity-search:focus{border-color:#69c7a494}.activity-select-all{min-height:28px;margin-bottom:6px;font-weight:700}.activity-filters{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.activity-filter{color:#f1f9f3db;cursor:pointer;-webkit-user-select:none;user-select:none;background:#5c625f47;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:5px;min-height:28px;padding:0 9px;font-size:12px;display:inline-flex}.activity-filter input{accent-color:#69c7a4;width:13px;height:13px;margin:0}.activity-ticker{border-top:1px solid #ffffff17;height:210px;padding-top:8px;position:relative;overflow:hidden}.activity-track{gap:8px;animation:24s linear infinite activity-scroll;display:grid}.activity-ticker:hover .activity-track{animation-play-state:paused}.activity-card{color:#f1f9f3e6;width:100%;min-height:92px;font:inherit;text-align:left;cursor:pointer;background:linear-gradient(#ffffff14,#ffffff05),#42474485;border:1px solid #ffffff21;border-radius:8px;gap:4px;padding:9px 10px;display:grid}.activity-card:hover,.activity-card:focus-visible{background:linear-gradient(#ffffff1c,#ffffff08),#525854a3;border-color:#69c7a480;outline:none}.activity-card-meta{color:#69c7a4e6;font-size:11px;font-weight:750}.activity-card strong{color:#f3faf3;font-size:14px;line-height:1.25}.activity-card span,.activity-card small{color:#ddece1bd;font-size:12px;line-height:1.35}.activity-empty{color:#ddece194;place-items:center;height:100%;font-size:13px;display:grid}.activity-detail{z-index:4;right:max(16px, env(safe-area-inset-right));bottom:max(472px, calc(env(safe-area-inset-bottom) + 472px));color:#f8faf9f0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#303432a3;border:1px solid #ffffff29;border-radius:8px;width:min(380px,100vw - 32px);padding:14px;position:fixed;box-shadow:0 18px 48px #0000003d}.activity-detail[hidden]{display:none}.activity-close{color:#f1f9f3db;cursor:pointer;background:#5c625f5c;border:1px solid #ffffff24;border-radius:7px;width:28px;height:28px;font-size:20px;line-height:1;position:absolute;top:8px;right:8px}.activity-detail-category{color:#69c7a4f2;background:#69c7a424;border-radius:999px;align-items:center;min-height:24px;padding:0 9px;font-size:12px;font-weight:750;display:inline-flex}.activity-detail h2{color:#f3faf3;margin:10px 32px 10px 0;font-size:17px;line-height:1.3}.activity-detail dl{gap:7px;margin:0 0 10px;display:grid}.activity-detail dl>div{grid-template-columns:64px 1fr;gap:10px;display:grid}.activity-detail dt,.activity-detail dd,.activity-detail p,.activity-detail small{margin:0;font-size:13px;line-height:1.45}.activity-detail dt{color:#f1f9f3b3}.activity-detail dd,.activity-detail p{color:#f1f9f3e6}.activity-detail small{color:#ddece18f;margin-top:10px;display:block}@keyframes activity-scroll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.debug-panel{z-index:2;left:50%;bottom:max(16px, env(safe-area-inset-bottom));color:#f1f9f3b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#080d0b80;border:1px solid #ffffff1f;border-radius:7px;width:max-content;max-width:min(720px,100vw - 32px);padding:8px 10px;font:12px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:fixed;transform:translate(-50%)}@media (width<=760px){.initial-loader{top:min(28dvh,220px);transform:translate(-50%)}.object-panel,.activity-board{top:auto;right:max(10px, env(safe-area-inset-right));bottom:max(10px, env(safe-area-inset-bottom));left:max(10px, env(safe-area-inset-left));width:auto;height:min(58dvh,520px);max-height:min(58dvh,520px);padding:10px;transition:transform .26s;transform:translateY(0)}.object-panel[data-collapsed=true],.activity-board[data-collapsed=true]{transform:translateY(calc(100% + max(10px, env(safe-area-inset-bottom)) + 1px))}.object-panel[data-mobile-peer-open=true] .panel-handle,.activity-board[data-mobile-peer-open=true] .panel-handle{bottom:calc(-38px - max(10px, env(safe-area-inset-bottom)))}.panel-header h1{font-size:14px}.building-info-search,.activity-search{font-size:16px}.panel-toggle{font-size:0}.panel-toggle:before{content:"⌄";font-size:18px;line-height:1}.panel-handle{writing-mode:horizontal-tb;border-radius:8px;width:auto;min-width:104px;min-height:38px;padding:0 14px;font-size:16px;top:auto;bottom:calc(100% + 8px);transform:none}.panel-handle-left{left:0;right:auto}.panel-handle-right{writing-mode:horizontal-tb;left:auto;right:0;transform:none}.object-panel[data-collapsed=false] .panel-handle,.activity-board[data-collapsed=false] .panel-handle,.debug-panel{display:none}.instructions{top:max(58px, calc(env(safe-area-inset-top) + 50px));right:max(10px, env(safe-area-inset-right));z-index:3;width:min(214px,100vw - 20px);padding:9px 10px}.instructions[data-collapsed=true]{transform:translateX(calc(100% + max(10px, env(safe-area-inset-right)) + 1px))}.instruction-handle{writing-mode:horizontal-tb;white-space:nowrap;border-radius:8px;width:94px;min-height:34px;padding:0 10px;font-size:15px;top:0;left:-102px;transform:none}.instructions h2{font-size:13px}.instruction-toggle{font-size:0}.instruction-toggle:before{content:"›";font-size:18px;line-height:1}.mouse-instructions{display:none!important}.instructions .touch-instructions{display:grid}.instructions dl{gap:6px}.instructions dl>div{grid-template-columns:minmax(82px,auto) 1fr;gap:8px}.instructions dt,.instructions dd{font-size:12px;line-height:1.32}.activity-ticker{height:180px}.activity-detail{right:max(10px, env(safe-area-inset-right));left:max(10px, env(safe-area-inset-left));bottom:calc(max(10px, env(safe-area-inset-bottom)) + min(58dvh, 520px) + 10px);width:auto}}@media (width>=761px) and (width<=1180px){.debug-panel{left:max(16px, env(safe-area-inset-left));bottom:calc(max(16px, env(safe-area-inset-bottom)) + 456px);max-width:min(420px,100vw - 32px);transform:none}}
