@charset "UTF-8";:root{font:100%/1.5 system-ui,-apple-system,BlinkMacSystemFont,PingFang TC,Microsoft JhengHei,sans-serif;font-synthesis:none;font-optical-sizing:auto;color:#203342;background:#c8d5df;--ink: #203342;--blue: #176b98;--muted: #526675;--surface: rgba(248, 251, 253, .9);--solid: #f8fbfd;--line: rgba(53, 76, 94, .14);--hover: #e5edf3;--shadow: 0 12px 40px #2033421a, 0 2px 8px #2033420a;--edge: .75rem;--dock-bottom: max(1.75rem, env(safe-area-inset-bottom));--bottom-control-width: min(18.5rem, calc(100vw - 2 * var(--edge)));--bottom-control-height: 3.25rem;--bottom-control-gap: .5rem}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input,select,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;min-height:44px;border-radius:.75rem;transition:background .15s,color .15s}button:hover{background:var(--hover)}button:active{transform:scale(.97);background:#dce7ef}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #1782bc;outline-offset:3px}a{color:var(--blue);text-underline-offset:.2em}svg{width:1.25rem;height:1.25rem;flex-shrink:0}button svg,a svg{vertical-align:middle}::selection{background:#b8d9f1;color:#18364e}input{caret-color:var(--blue)}#app{height:100dvh;overflow:hidden;position:relative}#scene,#labels{position:absolute;inset:0}#scene canvas{display:block;touch-action:none}#labels{pointer-events:none;overflow:hidden}.place-label{position:absolute;left:0;top:0;will-change:transform;pointer-events:auto;min-width:44px;padding:.375rem .25rem;white-space:nowrap;font-size:.8125rem;font-weight:600;color:#284555;border-radius:.625rem}.place-label span{display:block;padding:.2rem .5rem;background:#f9fcf2ed;border-radius:.5rem;box-shadow:0 2px 8px #20334218}.place-label:hover,.place-label.selected{color:#fff;background:none}.place-label:hover span,.place-label.selected span{background:var(--blue)}.route-pin{position:absolute;left:0;top:0;z-index:1;display:flex;align-items:center;gap:.5rem;max-width:min(15rem,calc(100vw - 2rem));padding:.5rem .65rem;color:#203342;background:#f8fcfff2;border:1px solid white;border-radius:.8rem;box-shadow:0 3px 14px #20334224;pointer-events:none}.route-pin span{font-size:.75rem;color:#fff;background:#176b98;padding:.2rem .4rem;border-radius:.4rem;white-space:nowrap}.route-pin.destination span{background:#087c7d}.route-pin strong{font-size:.875rem;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-pin:after{content:"";position:absolute;left:calc(var(--pin-stem, 50%) - 1px);top:100%;height:18px;width:2px;background:#176b98}.route-pin.below:after{top:auto;bottom:100%}.topbar,.operation-panel,.view-dock,.scene-tools,.minimap,.source-panel{background:var(--surface);box-shadow:var(--shadow);border:1px solid #ffffffa6;backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%)}.topbar{position:absolute;inset:max(.75rem,env(safe-area-inset-top)) var(--edge) auto;z-index:8;display:flex;justify-content:space-between;align-items:center;padding:.625rem .75rem;border-radius:1.125rem;gap:.5rem}.brand{display:flex;align-items:center;gap:.65rem;min-width:0}.brand img{width:2.25rem;height:2.25rem;object-fit:contain}.brand h1{margin:0;font-size:1rem;line-height:1.4;letter-spacing:-.02em;font-weight:700;white-space:nowrap}.brand h1 span{font-size:.8125rem;font-weight:500;margin-left:.5rem;color:var(--muted);letter-spacing:0}.brand p{display:none}.header-actions{display:flex;align-items:center;gap:.75rem}.quiet{padding:.5rem .75rem;font-size:.875rem;border-radius:.75rem}.header-actions .quiet{padding:.4rem .5rem;font-size:.8125rem}.icon-button{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;flex-shrink:0}.primary{background:var(--blue);color:#fff;padding:.75rem 1rem;font-size:.9375rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem}.primary:hover{background:#11587f}.primary:active{background:#0f4e72}.wide{width:100%;margin-top:.5rem}.operation-panel{position:absolute;z-index:7;left:var(--edge);right:var(--edge);bottom:calc(var(--dock-bottom) + 4.5rem);border-radius:1.5rem;overflow:hidden;will-change:transform;display:flex;flex-direction:column;max-height:calc(100dvh - 12rem)}.operation-heading{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .5rem 1.25rem;position:relative;touch-action:none;cursor:grab}.operation-heading:before{content:"";position:absolute;top:.4rem;left:calc(50% - 1.125rem);width:2.25rem;height:.25rem;border-radius:1rem;background:#9daeba}.operation-heading:active{cursor:grabbing}#operation-context{display:block;margin:.25rem 0 0;font-size:.8125rem;font-weight:400;line-height:1.5;color:var(--muted);overflow-wrap:anywhere;max-width:27ch}.operation-heading h2{font-size:1.25rem;line-height:1.3;letter-spacing:-.025em;margin:0;font-weight:700}.operation-tabs{flex-shrink:0;display:flex;margin:.25rem 1rem .625rem;padding:.2rem;background:#dce5ec;border-radius:.85rem;gap:.2rem}.operation-tabs button{flex:1;padding:.4rem .25rem;font-size:.875rem;min-height:44px;border-radius:.65rem}.operation-tabs button[aria-selected=true]{color:var(--ink);font-weight:650;background:#fff;box-shadow:0 1px 5px #20334217}#menu-content{min-height:0;flex-shrink:1;max-height:min(25dvh,22rem);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b4c4d0 transparent}.operation-panel[data-tab=student] #menu-content{max-height:44dvh}.menu-section{padding:.25rem 1rem 1rem}.menu-note{font-size:.875rem;line-height:1.7;color:var(--muted);margin:.75rem 0 0}.section-label{font-size:.8125rem;font-weight:650;color:var(--muted);margin:1rem 0 .4rem}.place-directory{display:grid;grid-template-columns:1fr 1fr;gap:.25rem .5rem}.place-directory button{display:flex;align-items:center;justify-content:space-between;gap:.25rem;text-align:left;padding:.5rem .4rem;font-size:.875rem}.route-fields{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);align-items:end;gap:.375rem}.route-fields>div{min-width:0}.route-fields label{display:block;font-size:.8125rem;font-weight:600;color:var(--muted);margin:0 0 .375rem}.route-fields select{width:100%;min-height:48px;border:1px solid var(--line);border-radius:.75rem;background:#fff;font-size:.9375rem;padding:.625rem .35rem;cursor:pointer}.route-fields>button{color:var(--blue);margin-bottom:.125rem}#plan-route{margin-top:.875rem}.form-error{font-size:.875rem;color:#a13e32;line-height:1.6;margin:.75rem 0 0}.student-choices,.outfit-choices{margin:0;padding:0;border:0;min-width:0}.student-choices legend,.outfit-choices legend{font-size:.875rem;font-weight:600;margin-bottom:.6rem;padding:0}.student-options,.outfit-options{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.student-options label,.outfit-options label{position:relative;cursor:pointer}.student-options input,.outfit-options input{position:absolute;opacity:0;width:1px;height:1px}.student-card{display:flex;flex-direction:column;align-items:center;border:2px solid transparent;border-radius:1rem;background:#e9eff4;padding:0 0 .5rem}.student-card img{width:100%;height:6.5rem;object-fit:contain}.student-card strong{font-size:.875rem;font-weight:600}.student-options input:checked+.student-card{border-color:var(--blue);background:#ddebf5}.student-options input:focus-visible+.student-card,.outfit-options input:focus-visible+span{outline:3px solid #1782bc;outline-offset:3px}.outfit-choices{margin-top:.875rem}.outfit-options{background:#dce5ec;border-radius:.85rem;padding:.2rem;gap:.2rem}.outfit-options span{display:flex;min-height:44px;align-items:center;justify-content:center;font-size:.875rem;border-radius:.65rem}.outfit-options input:checked+span{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 5px #20334217}.uniform-reference{font-size:.8125rem;line-height:1.65;color:var(--muted);margin:.8rem 0 0}.uniform-reference a{display:inline-block;min-height:44px;padding-top:.5rem}.route-status{flex-shrink:0;padding:.75rem 1rem 1rem;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start;gap:.5rem}.route-status>span{display:none}.route-status strong{font-size:.9375rem;line-height:1.5}.route-status p{margin:.25rem 0 0;color:var(--muted);font-size:.8125rem;line-height:1.5}#follow-route{grid-column:1;grid-row:2}.route-status .route-progress{margin:0 0 .25rem;color:var(--blue);font-size:.8125rem;font-weight:600}#app[data-route-phase=arrived] .route-progress{color:#146943}#app[data-route-phase=following] #follow-route{background:#e5edf3;color:var(--ink)}.operation-panel[data-tab=student] .route-status,.operation-panel[data-tab=explore] .route-status{display:none}.operation-panel.collapsed #menu-content,.operation-panel.collapsed .route-status{visibility:hidden}@media(max-width:639px){.operation-panel.route-preview #menu-content,.operation-panel.route-preview .operation-tabs{display:none}.operation-panel.route-preview .operation-heading{padding-bottom:.875rem}#app:has(#mini-map:not([hidden])) .operation-panel{max-height:max(8rem,calc(100dvh - var(--dock-bottom) - 23.75rem))}}.view-dock{position:absolute;bottom:var(--dock-bottom);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:.35rem;gap:.2rem;border-radius:1.25rem;white-space:nowrap;z-index:10;max-width:calc(100% - 1rem)}.view-dock button{display:flex;min-width:44px;align-items:center;justify-content:center;gap:.35rem;font-size:.875rem;padding:.5rem .65rem;border-radius:.875rem}.view-dock button.active{background:var(--blue);color:#fff}.dock-label{display:inline}.source-panel{position:absolute;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b4c4d0 transparent;border-radius:1.5rem;z-index:9}.close-info{position:absolute;right:.625rem;top:.625rem;z-index:2;background:#e9eff5;border-radius:50%;width:44px}.info-body{padding:1.25rem}.info-body h2{font-size:1.75rem;line-height:1.2;margin:.25rem 2rem .75rem 0;letter-spacing:-.025em}.info-body p{font-size:.9375rem;line-height:1.75;margin:0 0 .75rem}#info-category{color:var(--blue);font-size:.8125rem;font-weight:600;padding-right:2.5rem}#info-details{display:flex;flex-wrap:wrap;gap:.35rem;margin:.8rem 0}.room-chip{display:inline-flex;padding:.3rem .65rem;background:#e5edf3;border-radius:.5rem;font-size:.8125rem;color:#305367}#info-details details{width:100%;font-size:.875rem;line-height:1.8}summary{cursor:pointer;min-height:44px;padding:.625rem 0;font-size:.875rem;font-weight:600;color:var(--ink)}.room-row{display:flex;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.room-row strong{white-space:nowrap}.destination-actions{display:grid;gap:.35rem}.destination-actions>button{width:100%;margin:0}.building-room-directory,.reference-options{border-top:1px solid var(--line);margin-top:.75rem}#info-photo img{width:100%;height:auto;max-height:12rem;object-fit:cover;display:block;border-radius:.75rem}.photo-caption{display:block;padding:.5rem 0;font-size:.8125rem;line-height:1.65;color:var(--muted);overflow-wrap:anywhere}.source-panel{inset:5.5rem var(--edge) calc(var(--dock-bottom) + 4.5rem);padding:1.25rem;max-width:30rem;margin-left:auto;background:#f8fbfdf5}.source-panel h2{font-size:1.25rem;margin:0 2.5rem 1rem 0;letter-spacing:-.02em}.source-panel h3{font-size:1rem;margin:1.5rem 0 .65rem}.source-panel p{font-size:.875rem;line-height:1.8;color:var(--muted)}.source-panel a{font-size:.875rem;line-height:1.8;display:block;overflow-wrap:anywhere}.source-panel a svg{margin-left:.4rem;width:1rem}.source-panel img{width:100%;border-radius:.5rem;display:block;margin:.5rem 0}.source-photo{margin:1.3rem 0}.source-photo>p{font-size:.8125rem;margin:.3rem 0}.scene-tools{position:absolute;z-index:6;right:var(--edge);top:5.5rem;display:grid;grid-template-columns:44px;border-radius:1rem;padding:.25rem;gap:.125rem}.minimap{position:absolute;z-index:6;left:var(--edge);top:calc(max(.75rem,env(safe-area-inset-top)) + 4.75rem);width:11rem;border-radius:1.25rem;padding:.5rem}.map-heading{font-size:.875rem;color:var(--muted)}#minimap-toggle{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.25rem .35rem}#minimap-toggle svg{width:1rem;height:1rem}.minimap:has(#mini-map[hidden]){width:10.5rem;padding:.25rem}.north{font-weight:700}#mini-map{margin-top:.25rem}#mini-map>svg{width:100%;height:auto;display:block;aspect-ratio:300 / 280}.minimap polygon{cursor:pointer}.minimap polygon:hover{fill:var(--blue)}#app:has(#inspector:not([hidden])) .minimap,#app:has(#source-panel:not([hidden])) .minimap{display:none}#app[data-exterior] .minimap{visibility:hidden}#app[data-exterior] .operation-panel{visibility:visible}.controls-hint{display:none;position:absolute;bottom:calc(var(--dock-bottom) + 4.5rem);left:50%;transform:translate(-50%);font-size:.8125rem;color:#304f62;background:#f8fbfde0;padding:.5rem .75rem;border-radius:.75rem;width:max-content;max-width:min(calc(100% - 36rem),var(--controls-hint-room, calc(100% - 2rem) ));text-align:center;text-wrap:balance;overflow-wrap:anywhere;pointer-events:none}footer{position:absolute;bottom:.35rem;left:var(--edge);right:var(--edge);display:flex;justify-content:space-between;gap:.6rem;font-size:.5625rem;color:#324e5f;pointer-events:none}footer a{pointer-events:auto;color:inherit;text-decoration:none}footer[data-startup-credit]{justify-content:flex-end}footer[data-startup-credit] .model-status{display:none}#startup-attribution{font-size:.875rem;line-height:1.5;text-align:right;opacity:1;transition:opacity .4s ease,visibility 0s linear .4s}#startup-attribution[data-dismissed]{opacity:0;visibility:hidden;pointer-events:none}#studio-credit{margin-left:auto;text-align:right}#toast{position:absolute;top:5.5rem;left:50%;transform:translate(-50%);max-width:calc(100% - 2rem);padding:.85rem 1.1rem;border-radius:1rem;background:#203342;color:#fff;font-size:.875rem;line-height:1.5;text-align:center;z-index:12}#loading{--loading-accent: var(--brand-primary, #657954);--loading-ink: #182015;--loading-muted: #64705e;position:absolute;inset:0;z-index:20;display:flex;overflow:auto;padding:max(1.5rem,env(safe-area-inset-top)) max(1.5rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.5rem,env(safe-area-inset-left));background:#f8f9f6;color:var(--loading-ink);font-family:Noto Sans TC,system-ui,-apple-system,BlinkMacSystemFont,PingFang TC,Microsoft JhengHei,sans-serif}#app:has(#loading:not([hidden])) #scene{z-index:21;background:transparent;pointer-events:none}#app:has(#loading:not([hidden])) #scene canvas{visibility:hidden}.loading-content{width:min(100%,26rem);margin:auto;flex-shrink:0;text-align:center}.loading-mark{display:block;width:5rem;height:5rem;margin:0 auto;object-fit:contain}.loading-content h2{font-size:clamp(1.5rem,4vw,2rem);font-weight:800;line-height:1.35;margin:1.75rem 0 .75rem;letter-spacing:-.025em;text-wrap:balance}.loading-content p{margin:0;font-size:.9375rem;line-height:1.8;color:var(--loading-muted);overflow-wrap:anywhere}.loading-track{height:4px;width:min(14rem,100%);margin:2rem auto;background:#dfe5d9;overflow:hidden;border-radius:1rem}.loading-track span{display:block;background:var(--loading-accent);width:40%;height:100%;border-radius:inherit;animation:loading 1.8s ease-in-out infinite}#retry{background:var(--loading-accent);color:#fff;min-height:44px;padding:.65rem 1.25rem;font-weight:600}#retry:hover{background:#4a5e3a}#retry:focus-visible{outline-color:var(--loading-accent)}#touch-controls{position:absolute;inset:0;pointer-events:none;z-index:6}#joystick{position:absolute;left:1.25rem;bottom:calc(var(--dock-bottom) + 13rem);width:6rem;height:6rem;display:grid;place-items:center;border:1px solid #ffffff80;background:#f3f8fc80;border-radius:50%;pointer-events:auto;touch-action:none}#joystick-knob{width:2.7rem;height:2.7rem;border-radius:50%;background:#176b9899;pointer-events:none}#jump{position:absolute;right:1.25rem;bottom:calc(var(--dock-bottom) + 14rem);width:3.5rem;height:3.5rem;border-radius:50%;background:#f5f9fddd;pointer-events:auto;touch-action:none}#app:has(#source-panel:not([hidden])) .operation-panel{visibility:hidden}#app[data-mode=walking]:not(:has(.operation-panel.collapsed,.operation-panel.route-preview)) #touch-controls{visibility:hidden}@keyframes loading{0%,to{transform:translate(-100%)}50%{transform:translate(250%)}}@media(min-width:640px){:root{--edge: 1.25rem}.topbar{inset:1.25rem var(--edge) auto;padding:.75rem 1rem}.brand h1{font-size:1.125rem}.brand img{width:2.5rem;height:2.5rem}.brand p{display:block;margin:.2rem 0 0;color:var(--muted);font-size:.8125rem}.header-actions .quiet{font-size:.875rem;padding:.5rem .75rem}.operation-panel{left:var(--edge);right:auto;top:7.25rem;bottom:auto;width:18.5rem;border-radius:1.5rem;max-height:calc(100dvh - 14rem)}.operation-heading{padding:1rem 1rem .5rem 1.25rem;cursor:default}.operation-heading:before{display:none}.operation-heading h2{font-size:1.5rem}#menu-content,.operation-panel[data-tab=student] #menu-content{max-height:min(32rem,calc(100dvh - 22.5rem))}.route-active .operation-panel[data-tab=route] #menu-content{max-height:calc(100dvh - 29rem)}.operation-panel.collapsed .route-status{display:none}.route-fields{grid-template-columns:1fr 44px;gap:.5rem}.route-fields>div{grid-column:1}.route-fields>div:last-child{grid-row:2}.route-fields>button{grid-column:2;grid-row:1 / 3;align-self:center;margin-top:1rem}.route-fields select{padding:.65rem .75rem;font-size:1rem}.student-card img{height:9rem}.dock-label{display:inline}.view-dock button{padding:.5rem .85rem}.scene-tools{top:7.25rem;display:flex;flex-direction:column}.source-panel{top:7.25rem}#app:has(#inspector:not([hidden])) .scene-tools,#app:has(#source-panel:not([hidden])) .scene-tools{display:none}.minimap{left:auto;right:var(--edge);top:auto;bottom:calc(var(--dock-bottom) + 4.5rem);width:12rem}#app:has(#touch-controls:not([hidden])) .minimap{right:calc(var(--edge) + 4.5rem)}#app[data-exterior] .operation-panel{visibility:visible}#joystick{left:21rem;bottom:7rem}#jump{bottom:7rem}#app[data-mode=walking]:not(:has(.operation-panel.collapsed)) #touch-controls{visibility:visible}footer{font-size:.6875rem}}@media(min-width:1024px){.operation-panel{width:20.5rem}.controls-hint{display:block}#app:has(#inspector:not([hidden])) .controls-hint,#app:has(#source-panel:not([hidden])) .controls-hint,#app[data-exterior] .controls-hint{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.loading-track span{width:40%;transform:none}button:active{transform:none}}@media(prefers-reduced-transparency:reduce){:root{--surface: #f8fbfd}.topbar,.operation-panel,.view-dock,.scene-tools,.minimap,.source-panel{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--solid)}}@media(prefers-contrast:more){:root{--surface: #fff;--muted: #304b60;--line: #637d90}.topbar,.operation-panel,.view-dock,.scene-tools,.minimap,.source-panel,.place-label{border-color:#526a7d;backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff}.place-label span{background:#fff;border:1px solid #526a7d}.place-label.selected span,.place-label:hover span{background:var(--blue);color:#fff}}.npc-label{position:absolute;left:0;top:0;padding:.4rem .65rem;border-radius:.75rem;background:#fcfcf3f5;border:1px solid #fff;box-shadow:0 2px 8px #20334225;color:var(--ink);font-size:.875rem;white-space:nowrap;pointer-events:auto}.npc-label:before{content:"●";color:var(--npc-color);margin-right:.35rem}.npc-prompt{position:absolute;z-index:11;left:50%;top:12.5rem;transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:.75rem;width:max-content;max-width:calc(100% - 2rem);padding:.65rem 1rem;background:#203342;color:#fff;border:1px solid #ffffff80;box-shadow:var(--shadow);font-size:.9375rem}.npc-prompt:hover{background:#305063}.npc-prompt kbd{font:inherit;padding:.15rem .45rem;border:1px solid #ffffff80;border-radius:.35rem}.npc-prompt:active{transform:translate(-50%) scale(.97)}.npc-dialog{position:fixed;inset:auto 0 max(1rem,env(safe-area-inset-bottom));margin:auto;width:min(32rem,calc(100% - 1.5rem));max-height:calc(100dvh - 2rem);box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;padding:1.25rem;color:var(--ink);background:#f8fbfd;border:1px solid #fff;border-radius:1.5rem;box-shadow:0 16px 60px #1426344d}.npc-dialog::backdrop{background:#152d4355}.npc-close{position:absolute;right:.75rem;top:.75rem;background:#e5edf3;border-radius:50%}.npc-heading{display:flex;gap:.875rem;align-items:center;padding-right:2.5rem}.npc-portrait{display:grid;place-items:center;flex-shrink:0;width:3.25rem;height:3.25rem;border-radius:1rem;background:var(--npc-color);color:#fff;font-size:1.5rem}.npc-heading h2{margin:.125rem 0 0;font-size:1.5rem;letter-spacing:-.025em}.npc-heading p{margin:0;color:var(--muted);font-size:.875rem}.npc-speech{margin:1.25rem 0;padding:1rem;border-radius:1rem;background:#e9eff4;font-size:1rem;line-height:1.85}.npc-question{margin:1rem 0 -.5rem;color:var(--muted);font-size:.875rem;line-height:1.6}.npc-choice-label{color:var(--muted);font-size:.875rem;margin:0 0 .5rem}.npc-choices{display:grid;gap:.5rem}.npc-choices button{width:100%;text-align:left;padding:.75rem;min-height:48px;border:1px solid var(--line);background:#fff;font-size:1rem;line-height:1.5}.npc-choices button:hover,.npc-choices button[aria-pressed=true]{border-color:var(--blue);background:#e0eef7}.npc-dialog-footer{margin-top:1rem;display:flex;flex-direction:column-reverse;gap:.5rem}.npc-dialog-footer p{margin:0;text-align:center;color:var(--muted);font-size:.8125rem}@media(max-width:639px),(pointer:coarse){.npc-prompt kbd{display:none}}@media(min-width:640px){.npc-prompt{top:auto;bottom:calc(var(--dock-bottom) + 4.5rem)}.npc-dialog{bottom:calc(var(--dock-bottom) + 4.5rem);padding:1.5rem;max-height:calc(100dvh - 9rem)}.npc-dialog-footer{flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem}}@media(prefers-contrast:more){.npc-dialog,.npc-choices button{border-color:#526a7d}}.topbar{box-shadow:none}.operation-panel[data-tab=explore] .operation-tabs{display:none}.operation-panel[data-tab=explore] .operation-heading{padding-bottom:.75rem}.operation-panel[data-tab=explore] #menu-content{max-height:min(35dvh,24rem)}.operation-tabs button{font-size:.8125rem}#destination-note{font-size:.8125rem;line-height:1.65;margin:.75rem 0}.more-menu{position:relative}.more-menu>summary{display:flex;align-items:center;gap:.375rem;border-radius:.75rem;padding:.5rem .625rem;list-style:none;font-size:.875rem;font-weight:500}.more-menu>summary::-webkit-details-marker{display:none}.more-menu>summary:hover,.more-menu[open]>summary{background:var(--hover)}.more-actions{position:absolute;right:0;top:calc(100% + .75rem);width:min(16rem,calc(100vw - 2.5rem));max-height:calc(100dvh - 8rem);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b4c4d0 transparent;background:var(--solid);box-shadow:var(--shadow);border-radius:1rem;padding:.5rem}.more-actions button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;text-align:left;font-size:.875rem}.more-actions button[aria-pressed=true]{background:#e5edf3}.more-actions button+button{margin-top:.125rem}.help-panel{position:absolute;z-index:11;top:5.5rem;right:var(--edge);left:var(--edge);max-height:calc(100dvh - 10rem);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b4c4d0 transparent;background:var(--solid);padding:1.25rem;border-radius:1rem;box-shadow:var(--shadow)}.help-panel h2{margin:0 2.5rem 1.25rem 0;font-size:1.25rem}.help-panel p{font-size:.9375rem;line-height:1.75;margin:1rem 0 0;color:var(--muted)}.help-panel strong{display:block;color:var(--ink);margin-bottom:.25rem}#app:has(#help-panel:not([hidden])) .scene-tools,#app:has(#help-panel:not([hidden])) .minimap{visibility:hidden}.view-dock{gap:.25rem}.controls-hint{max-width:min(25rem,var(--controls-hint-room, calc(100% - 2rem) ))}@media(min-width:640px){.operation-panel{width:20rem}.operation-panel[data-tab=explore] #menu-content{max-height:min(30rem,calc(100dvh - 17rem))}.operation-panel[data-tab=explore] .operation-heading,.operation-panel[data-tab=explore] .menu-section{padding-bottom:.875rem}.help-panel{top:7.25rem;left:auto;width:23rem}}@media(max-width:639px){#app[data-mode=walking] .operation-panel.collapsed .operation-tabs{display:none}.operation-panel[data-tab=explore] #menu-content{max-height:min(35dvh,24rem)}#joystick{bottom:calc(var(--dock-bottom) + 9.5rem)}#jump{bottom:calc(var(--dock-bottom) + 10.5rem)}#app:has(.operation-panel.route-preview) #joystick{bottom:calc(var(--dock-bottom) + 22rem)}#app:has(.operation-panel.route-preview) #jump{bottom:calc(var(--dock-bottom) + 23rem)}}@media(prefers-contrast:more){.more-actions,.help-panel{border:1px solid #526a7d;background:#fff}}.operation-panel.route-preview #menu-content,.operation-panel.route-preview .operation-tabs{display:none}.operation-panel.route-preview .operation-heading{padding-bottom:.875rem}.operation-panel.route-preview #operation-context{display:none}.place-directory{gap:.25rem .5rem}.place-directory button{min-height:44px;padding:.5rem .625rem;background:#e5edf3}.place-directory button:hover{background:#d7e5ee}.place-directory button>span{min-width:0;overflow-wrap:anywhere}.operation-panel:has(>#inspector:not([hidden]))>:is(.operation-heading,.operation-tabs,#menu-content,#route-status){display:none}.inspector{width:100%;min-height:0;flex-shrink:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b4c4d0 transparent;max-height:52dvh}.inspector-heading{position:sticky;top:0;z-index:3;background:var(--solid)}.inspector-back{display:flex;align-items:center;gap:.5rem;width:100%;min-height:44px;padding:.5rem;text-align:left;font-size:.875rem;color:var(--blue)}.inspector .info-body{padding-top:.75rem}@media(min-width:640px){.inspector{max-height:min(40rem,calc(100dvh - 14rem))}}:root{--surface: #fff;--solid: #fff;--shadow: 0 3px 12px #2033421c, 0 1px 3px #20334212}.topbar,.operation-panel,.view-dock,.scene-tools,.minimap,.source-panel{border:0;backdrop-filter:none;-webkit-backdrop-filter:none}.topbar{padding:.5rem .625rem;border-radius:1rem;gap:.25rem;box-shadow:var(--shadow)}.brand{gap:.5rem}.brand img{width:2rem;height:2rem}.brand h1{font-size:.9375rem}.brand h1 span{display:block;margin:0;font-size:.75rem}#app .brand{min-width:0;padding:0}#app .brand>div{min-width:0}#app .brand h1{overflow:hidden;text-overflow:ellipsis}#app .brand #sim-page-back{position:static;inset:auto;z-index:auto;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;color:var(--ink);background:transparent;border:0;border-radius:.5rem;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1}#app .brand #sim-page-back:hover,#app .brand #sim-page-back:focus-visible{background:var(--hover)}#app .brand #sim-page-back:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.header-actions{gap:.125rem}.more-menu>summary{min-width:44px;justify-content:center;padding:.5rem}.more-actions{z-index:12}.layers-menu .more-actions{width:15rem;right:-2.75rem}.display-heading{margin:.5rem .75rem;color:var(--muted);font-size:.8125rem}.setting-state{margin-left:auto;width:1.75rem;height:1rem;border-radius:1rem;background:#a3afb7;position:relative;flex-shrink:0}.setting-state:after{content:"";position:absolute;inset:.1875rem auto .1875rem .1875rem;width:.625rem;border-radius:50%;background:#fff}[aria-pressed=true]>.setting-state,[aria-expanded=true]>.setting-state{background:var(--blue)}[aria-pressed=true]>.setting-state:after,[aria-expanded=true]>.setting-state:after{left:.9375rem}.operation-panel{border-radius:1rem}.operation-heading{padding:1.125rem 1rem .375rem}.operation-panel[data-tab=explore] .operation-heading{padding-bottom:.375rem}.operation-heading h2{font-size:1.125rem}.operation-panel[data-tab=explore] .operation-tabs,.operation-tabs{display:flex;background:none;margin:0 .75rem .5rem;padding:0;border-radius:0;border-bottom:1px solid var(--line);gap:.25rem}.operation-tabs button{display:flex;align-items:center;justify-content:center;gap:.375rem;border-radius:.5rem .5rem 0 0;font-size:.875rem}.operation-tabs button svg{width:1.0625rem;height:1.0625rem}.operation-tabs button[aria-selected=true]{color:var(--blue);box-shadow:inset 0 -2px var(--blue);background:#edf5f9}.operation-panel[data-tab=explore] #menu-content{max-height:min(27dvh,24rem)}.menu-section{padding:.25rem .875rem .875rem}.place-filters{display:flex;gap:.25rem}.place-filters button{flex:1;min-width:0;min-height:44px;font-size:.8125rem;padding:.25rem;border-radius:1.5rem}.place-filters button[aria-pressed=true]{background:#dcecf6;color:#15567c;font-weight:600}.place-count{margin:.625rem 0;font-size:.75rem;line-height:1.5;color:var(--muted)}.place-directory{gap:.125rem .5rem}.place-directory button{background:none;border-bottom:1px solid #edf0f2;border-radius:.375rem;min-height:48px;padding:.5rem .25rem}.place-directory button:hover{background:#edf5f9}.place-directory button:focus-visible{outline-offset:-3px}.inspector-heading{border-bottom:1px solid var(--line)}.info-body h2{font-size:1.5rem}.destination-actions{grid-template-columns:1fr 1fr;gap:.5rem}.destination-actions button{font-size:.875rem;padding:.625rem .375rem}.scene-tools{top:5.5rem;left:50%;right:auto;transform:translate(-50%);display:grid;grid-template-columns:repeat(6,44px);gap:2px;padding:.25rem;border-radius:.875rem;z-index:6}.scene-tools button{width:44px;height:44px;padding:.25rem;border-radius:.5rem}.map-tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;font-size:.6875rem;line-height:1.2}.map-tool svg{width:1.125rem;height:1.125rem}#map-tilt{font-size:.875rem;font-weight:650}.angle-control{grid-column:span 3;display:grid;grid-template-columns:1fr auto;align-items:center;min-width:0;border-top:1px solid var(--line);padding:.375rem .375rem 0;margin-top:.125rem;font-size:.75rem;line-height:1.5}.angle-control output{font-variant-numeric:tabular-nums;min-width:2.5rem;text-align:right;color:var(--muted)}.angle-control input{grid-column:1 / -1;width:100%;min-width:0;height:2.75rem;margin:0;accent-color:var(--blue);cursor:ew-resize;touch-action:none}#map-rotate[data-dragging=true]{background:#dcecf6;color:#15567c}#map-rotate{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}#map-rotate[data-dragging=true]{cursor:grabbing}.compass-button{position:relative}.compass-letter{position:absolute;left:.25rem;top:.25rem;font-size:.625rem;font-weight:700}#compass-needle{width:1.625rem;height:1.625rem;transform-origin:center}#scene canvas{cursor:grab}#scene canvas:active{cursor:grabbing}#scene canvas:focus-visible{outline:3px solid #1782bc;outline-offset:-3px}.view-dock{border-radius:1rem}.view-dock button{border-radius:.75rem}.controls-hint{background:#ffffffed;border-radius:.5rem;box-shadow:none}.operation-panel.route-preview .operation-tabs{display:none}#app:has(#source-panel:not([hidden])) .scene-tools{display:none}#app:has(#help-panel:not([hidden])) .scene-tools{visibility:hidden}@media(min-width:640px){.topbar{inset:1rem var(--edge) auto;padding:0;background:none;box-shadow:none;pointer-events:none}.brand{padding:.75rem 1rem;width:20rem;border-radius:1rem;background:var(--solid);box-shadow:var(--shadow);pointer-events:auto}.brand h1{font-size:1.0625rem}.brand h1 span{display:inline;font-size:.8125rem;margin-left:.5rem}.brand p{display:none}.brand img{width:2.25rem;height:2.25rem}#app .brand{width:20rem;max-width:calc(100% - 5rem);padding:.5rem .75rem .5rem .25rem}.header-actions{gap:.5rem;pointer-events:auto}.header-actions>.more-menu{background:var(--solid);border-radius:.875rem;box-shadow:var(--shadow)}.more-menu>summary{padding:.625rem .875rem}.layers-menu .more-actions{right:0}.operation-panel{top:5.75rem;width:20rem;max-height:calc(100dvh - 11rem)}.operation-panel[data-tab=explore] #menu-content{max-height:calc(100dvh - 19rem)}.inspector{max-height:calc(100dvh - 11rem)}.scene-tools{top:auto;left:auto;right:var(--edge);transform:none;bottom:calc(var(--dock-bottom) + 4rem);grid-template-columns:repeat(3,2.75rem)}.angle-control{grid-column:1 / -1}#app[data-mode=walking] .scene-tools{grid-template-columns:repeat(2,2.75rem)}#app:has(#inspector:not([hidden])) .scene-tools{display:grid}.minimap{right:calc(var(--edge) + 10rem);bottom:calc(var(--dock-bottom) + 4rem)}.source-panel,.help-panel{top:5.75rem}.controls-hint{max-width:min(29rem,var(--controls-hint-room, calc(100% - 2rem) ))}}@media(min-width:640px)and (max-height:30rem){.scene-tools{grid-template-columns:repeat(6,2.75rem)}.angle-control{grid-column:span 3}.minimap{right:calc(var(--edge) + 19rem)}}@media(max-width:639px){.more-label{display:none}.operation-panel[data-tab=explore] .operation-heading{padding:.5rem .75rem 0}.operation-panel[data-tab=explore] .operation-tabs{margin-bottom:.25rem}.operation-panel[data-tab=explore] #menu-content{max-height:8rem}.place-count{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%)}.place-filters{margin-bottom:.25rem}#app[data-mode=walking] .scene-tools{grid-template-columns:repeat(4,44px)}}@media(prefers-contrast:more){.brand,.scene-tools,.operation-panel,.header-actions>.more-menu{outline:1px solid var(--muted)}.place-directory button{border-color:var(--muted)}}.layers-menu .more-actions{width:min(20rem,calc(100vw - 2rem));right:0;padding:1rem;max-height:calc(100dvh - 7rem)}.world-heading{font-size:1.125rem;line-height:1.4;margin:0 0 1rem}.world-field{display:block;font-size:.875rem;font-weight:600;margin:.875rem 0}.world-field select{display:block;width:100%;min-height:46px;padding:.5rem;margin-top:.4rem;border:1px solid #9aaebc;border-radius:.5rem;background:#fff;font-size:1rem;font-weight:400}.world-status{margin:.75rem 0 .25rem;color:#245b55;font-size:.875rem;font-weight:600}.world-note{color:var(--muted);font-size:.8125rem;line-height:1.6;margin:.5rem 0}.world-options{margin:1rem 0 .5rem;border-top:1px solid var(--line)}.world-options>summary{padding:.75rem 0;cursor:pointer;min-height:44px;font-size:.875rem}.world-motion{display:flex;gap:.65rem;align-items:center;min-height:44px;font-size:.875rem;cursor:pointer}.world-motion input{width:1.2rem;height:1.2rem;accent-color:#176b98}#world-preview{color:#176b98}#world-reset{font-size:.8125rem}#app[data-world-style=cute]{--blue: #765083;--hover: #f0e7f3}#app[data-world-style=paper]{--blue: #795c36;--hover: #efe5d4}@media(max-width:639px){.layers-menu .more-actions{position:fixed;top:calc(env(safe-area-inset-top) + 4.5rem);right:1rem}}#app[data-mode=walking][data-walking-view=eye] #zoom-in,#app[data-mode=walking][data-walking-view=eye] #zoom-out{display:none}.road-network-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:hidden}.road-band{fill:#146b91;fill-opacity:.15;stroke:#146b91;stroke-width:.6;stroke-opacity:.55}.road-band.selected{fill-opacity:.27;stroke-width:1.2}.road-center{fill:none;stroke:#12668a;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.road-center.selected{stroke:#083d5c;stroke-width:4}.road-hit{fill:none;stroke:transparent;stroke-width:16;pointer-events:none}.road-band.blocked{fill:#a94a16;stroke:#a94a16}.road-center.blocked{stroke:#a94a16;stroke-dasharray:6 4}.road-node circle{fill:#fff;stroke:#12668a;stroke-width:2}.road-node.disconnected circle{stroke:#a94a16}.road-node text,.road-section-label{font:600 11px/1.2 system-ui,sans-serif;fill:#173c50;stroke:#fff;stroke-width:3px;paint-order:stroke;stroke-linejoin:round}.road-section-label{font-size:13px;text-anchor:middle}.road-review-panel{border-top:1px solid var(--line,#dbe3e7);margin-top:1rem;padding-top:.5rem}.road-review-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.road-review-heading h3{margin:0;font-size:1rem}.road-section-detail{font-size:.875rem;line-height:1.6;margin:.5rem 0}.road-layer-controls{border:0;padding:0;margin:.5rem 0;display:flex;flex-wrap:wrap;column-gap:.75rem}.road-layer-controls legend{font-size:.875rem;font-weight:600;margin-bottom:.25rem}.road-layer-controls label{display:flex;align-items:center;gap:.375rem;min-height:2.75rem;font-size:.875rem;cursor:pointer}.road-layer-controls input{accent-color:#12668a;width:1rem;height:1rem}.road-review-actions{display:flex;flex-wrap:wrap;gap:.5rem}.road-review-actions button{flex:1;min-height:2.75rem}.road-review-key{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;font-size:.875rem}.road-key-line{width:1rem;border-top:2px solid #12668a}.road-key-band{width:1rem;height:.65rem;background:#d0e3eb;border:1px solid #12668a;margin-left:.4rem}.road-key-node{width:.6rem;height:.6rem;border:2px solid #12668a;border-radius:50%;background:#fff;margin-left:.4rem}#app[data-mode=walking] .road-review-panel{display:none}#app[data-road-review=true] .road-review-panel{border-top:0;margin-top:0}#app[data-road-review=true] .operation-panel[data-tab=route]>.operation-tabs{display:none}#app[data-road-review=true] .operation-panel[data-tab=route] #menu-content{display:block;max-height:min(34dvh,26rem)}#app[data-road-review=true] .operation-panel[data-tab=route] :is(.route-form-title,#route-form,#route-helper,#route-status){display:none}.road-review-options{margin-top:.5rem}.road-review-options>summary{display:flex;align-items:center;min-height:2.75rem;font-size:.875rem;color:var(--blue);cursor:pointer}@media(min-width:640px){#app[data-road-review=true] .operation-panel[data-tab=route] #menu-content{max-height:calc(100dvh - 12rem)}}.explore-intro{position:absolute;z-index:3;top:auto;bottom:calc(var(--dock-bottom) + var(--bottom-control-height) + .75rem);left:50%;right:auto;transform:translate(-50%);width:max-content;max-width:calc(100% - 2 * var(--edge));text-align:center;pointer-events:none;color:#203342;opacity:1;transition:opacity .22s ease-out,visibility 0s}#app #explore-intro[data-dismissed=true]{opacity:0;visibility:hidden;transition:opacity .22s ease-out,visibility 0s .22s}:is(.explore-intro,#controls-hint) h2{margin:0;font-size:1rem;font-weight:650;line-height:1.5;text-wrap:balance}:is(.explore-intro,#controls-hint) p{margin:.25rem 0 0;font-size:.8125rem;line-height:1.5;color:#304b5c}#app:is([data-mode=walking],[data-exterior],[data-road-review=true],.route-active):not([hidden]) .explore-intro,#app:has(#inspector:not([hidden]),#source-panel:not([hidden]),#help-panel:not([hidden])) .explore-intro{display:none}#app:has(#operation-panel:not(.collapsed)) .explore-intro{visibility:hidden}#app:has(#view-menu[open]) .explore-intro{visibility:hidden}#operation-panel>.operation-tabs{display:none}.operation-heading-copy{flex:1;min-width:0}.explorer-entry{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:44px;padding:.25rem;text-align:left;font-size:1.0625rem;font-weight:650;line-height:1.4;border-radius:.5rem}#operation-toggle-icon{display:flex;align-items:center;justify-content:center;flex:0 0 2.75rem;align-self:stretch}#operation-panel :is(.operation-heading,.inspector-heading){padding:.75rem}#operation-panel.collapsed .operation-heading{padding-bottom:.75rem}#operation-panel.route-preview #panel-back,#operation-panel.collapsed #panel-back{display:none}#operation-panel:has(>#inspector:not([hidden]))>#panel-back{display:none}#operation-panel #panel-back{width:auto;margin:0 .75rem .5rem}#operation-panel #menu-content,#operation-panel[data-tab=explore] #menu-content{max-height:min(40dvh,22rem)}#app:not([data-mode=walking]) #overview,#app[data-mode=walking] #walking{display:none}#app .view-dock button{background:none;color:var(--ink);font-weight:500}#app .view-dock button:hover{background:var(--hover)}#app .scene-tools{top:auto;left:50%;right:auto;bottom:var(--dock-bottom);transform:translate(-50%);display:block;max-width:calc(100% - 2 * var(--edge));padding:.25rem;z-index:10;border-radius:1rem}#app .scene-tools button{width:44px;height:44px}#app #operation-panel.collapsed{display:none}#app .scene-tools .map-mode{flex:0 0 44px}#app .scene-tools .map-mode :is(#walking,#overview){flex-direction:column;width:100%;padding:.25rem;gap:.125rem;font-size:.6875rem;line-height:1.2}#app .scene-tools .map-mode svg{width:1.125rem;height:1.125rem}#open-places[aria-expanded=true]{background:var(--hover);color:var(--blue)}#open-places{flex:0 0 44px}#app .scene-tools #map-recenter{font-size:.75rem}#app .controls-hint{display:none}#app[data-mode=walking] .controls-hint{display:block;bottom:calc(var(--dock-bottom) + 9rem);font-size:.8125rem}#more-menu>.more-actions{width:min(21rem,calc(100vw - 2rem));max-height:calc(100dvh - 7rem);padding:.625rem}.more-label{display:inline}.advanced-menu{border-bottom:1px solid var(--line)}.advanced-menu>summary{display:flex;align-items:center;gap:.75rem;min-height:48px;padding:.625rem .75rem;list-style:none;font-size:.875rem;font-weight:500;border-radius:.5rem}.advanced-menu>summary::-webkit-details-marker{display:none}.advanced-menu>summary:after{content:"";width:.4rem;height:.4rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);margin-left:auto}.advanced-menu[open]>summary:after{transform:rotate(45deg)}.advanced-menu>summary:hover{background:var(--hover)}.advanced-controls,.appearance-controls{padding:.5rem .625rem .875rem}.view-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}#app #view-menu .view-presets button{display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;min-height:48px;height:auto;margin:0;padding:.5rem .25rem;gap:.25rem;font-size:.8125rem;background:var(--hover)}#view-menu .angle-control{grid-column:auto;font-size:.875rem;padding:.5rem 0 0;margin:0}#view-menu .angle-control input{min-height:44px}.map-actions{display:grid;grid-template-columns:repeat(6,minmax(44px,1fr));align-items:center;gap:.25rem}#app[data-mode=walking] .map-actions{grid-template-columns:repeat(5,minmax(44px,1fr))}.map-zoom{display:grid;grid-template-columns:repeat(2,minmax(44px,1fr));grid-column:span 2;gap:.25rem;align-items:center}#app .scene-tools .map-actions>:is(#open-places,#map-recenter),#app .scene-tools .map-zoom>button{width:100%}#app .scene-tools .map-view-menu>summary{width:100%}#app .scene-tools .map-mode button{display:flex;align-items:center;justify-content:center;gap:.375rem;width:auto;padding:.5rem;font-size:.875rem;white-space:nowrap}.map-zoom{border:0}.map-view-menu>summary{width:44px;min-height:44px;padding:.25rem;list-style:none;border-radius:.5rem;cursor:pointer}.map-view-menu>summary::-webkit-details-marker{display:none}.map-view-menu>summary:hover,.map-view-menu[open]>summary{background:var(--hover)}.map-view-menu>.advanced-controls{position:absolute;right:0;bottom:calc(100% + .5rem);width:100%;max-height:calc(100dvh - 10rem);overflow-y:auto;overscroll-behavior:contain;background:var(--solid);box-shadow:var(--shadow);border-radius:1rem;padding:1rem}.view-angles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:.75rem}#view-menu .gesture-note{margin:.75rem 0 0;font-size:.8125rem}#app:has(#view-menu[open]) .scene-tools{z-index:11}#app:has(#view-menu[open]) .minimap{visibility:hidden}#app:has(#inspector:not([hidden])) .scene-tools{display:block}.appearance-controls .world-heading{display:none}.appearance-controls>.world-field:first-of-type{margin-top:0}.appearance-controls .display-heading{margin-left:0}#app .destination-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}#app .destination-actions>button{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:3.25rem;font-size:.8125rem;font-weight:650;line-height:1.4;padding:.625rem .375rem;border:1px solid #b7cbd8;border-radius:.625rem;color:var(--ink);background:#eef4f8;box-shadow:0 2px 4px #20334212;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}#app .destination-actions>button:not(:disabled):hover{background:#e0edf5;border-color:var(--blue)}#app .destination-actions>button:not(:disabled):active{transform:translateY(1px);box-shadow:none}#app .destination-actions>button:focus-visible{outline-offset:3px}#app .destination-actions:has(>#exterior-view[hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}#app .destination-actions:has(>#navigate[hidden]){grid-template-columns:minmax(0,1fr)}.building-room-floor{margin:.5rem 0 1rem}.building-room-floor h3{margin:0 0 .25rem;font-size:.875rem;line-height:1.5;color:var(--muted)}.building-room-directory .room-destination{min-height:44px}.building-introduction{margin:.5rem 0 1rem}.building-introduction #info-description{margin-bottom:0;font-size:.875rem;line-height:1.7}#building-spaces .building-room-directory{margin-top:1rem}#app .place-description{font-size:.9375rem;line-height:1.65}#app #destination-note{font-size:.8125rem;margin:.75rem 0}#joystick{bottom:calc(var(--dock-bottom) + 9.5rem)}#jump{bottom:calc(var(--dock-bottom) + 10.5rem)}@media(min-width:640px){#operation-panel #menu-content,#operation-panel[data-tab=explore] #menu-content{max-height:calc(100dvh - 15rem)}#app .scene-tools{left:50%;right:auto;transform:translate(-50%)}#app[data-mode=walking] .controls-hint{bottom:calc(var(--dock-bottom) + 4.5rem)}#joystick{left:1.25rem}}@media(min-width:640px)and (max-height:30rem){.brand,#app .brand{width:16rem}#operation-panel{width:16rem;max-height:calc(100dvh - 7.5rem)}#operation-panel #menu-content,#operation-panel[data-tab=explore] #menu-content{max-height:calc(100dvh - 13rem)}#operation-panel .inspector{max-height:calc(100dvh - 7.5rem)}.explore-intro h2{font-size:1rem}.explore-intro p{font-size:.8125rem}.map-view-menu>.advanced-controls{max-height:calc(100dvh - 11rem)}#app[data-mode=walking] .controls-hint{display:none}#joystick{bottom:calc(var(--dock-bottom) + 4rem)}#jump{right:5rem;bottom:calc(var(--dock-bottom) + 4rem)}}@media(prefers-contrast:more){.explore-intro{background:var(--solid);border-radius:.5rem;padding:.5rem}}#app[data-mode=walking] #view-menu{display:none}.gesture-note{margin:0 0 .875rem;font-size:.875rem;line-height:1.7;color:var(--muted)}.topbar:has(#more-menu[open]){z-index:12}#operation-panel[data-tab=explore]:not(:has(#inspector:not([hidden]))){background:var(--solid);box-shadow:var(--shadow);overflow:hidden}#operation-panel[data-tab=explore]:not(:has(#inspector:not([hidden]))) .operation-heading{cursor:default}#operation-panel[data-tab=explore]:not(:has(#inspector:not([hidden]))) .operation-heading:before{display:none}#operation-panel[data-tab=explore]:not(:has(#inspector:not([hidden])))>#menu-content{max-height:min(52dvh,calc(100dvh - 12rem))}#operation-panel[data-tab=explore]:not(.collapsed):not(:has(#inspector:not([hidden]))) .operation-heading{border-bottom:1px solid var(--line)}#operation-panel:not(.route-preview) #menu-collapse svg{transform:rotate(90deg)}#operation-panel.collapsed:not(.route-preview) #menu-collapse svg{transform:rotate(-90deg)}.directory-controls{position:sticky;top:0;z-index:3;background:var(--solid);margin-top:-.75rem;padding-top:.75rem;padding-bottom:.5rem}.directory-controls:before{content:"";position:absolute;top:-.75rem;bottom:0;left:0;right:0;z-index:-1;background:var(--solid);pointer-events:none}#destination-browser{min-width:0;max-width:100%;touch-action:pan-y}#menu-content{overscroll-behavior-x:none}.destination-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;border-bottom:1px solid var(--line);padding-bottom:.5rem;margin-bottom:.25rem}.destination-tabs button{min-width:0;min-height:44px;white-space:nowrap;padding:.5rem .125rem;font-size:.875rem;line-height:1.5;border-radius:.5rem}.destination-tabs button[aria-selected=true]{background:var(--blue);color:#fff;font-weight:600}.destination-tabs button:focus-visible{outline-offset:-3px}.destination-tabs button[aria-selected=true]:focus-visible{outline-color:#fff}.classroom-grid,.room-selection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.125rem .75rem}.room-selection-grid{flex:1;min-width:0}.room-destination{display:flex;align-items:center;min-width:0;width:100%;min-height:64px;padding:.625rem .25rem;border-bottom:1px solid var(--line);border-radius:.375rem;text-align:left}.room-destination>span{display:flex;flex-direction:column;gap:.125rem;min-width:0;overflow-wrap:anywhere}.place-directory button>span,.room-destination strong{font-size:.9375rem;line-height:1.5;font-weight:550}.room-destination small{font-size:.875rem;line-height:1.5;color:var(--muted)}.room-destination:focus-visible{outline-offset:-3px}#destination-browser .room-destination,#destination-browser [data-room-source]{scroll-margin-top:8rem}.room-source{margin:1rem 0 0;font-size:.75rem;line-height:1.7}.room-source a{display:inline-flex;align-items:center;min-height:44px}.room-marker-layer{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none}.room-marker-layer>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.room-marker-line{stroke:#176b98;stroke-width:2;stroke-dasharray:4 3}.room-marker-dot{fill:#176b98;stroke:#fff;stroke-width:3}.room-map-label{position:absolute;left:0;top:0;width:max-content;max-width:min(15rem,calc(100vw - 2rem));padding:.625rem .75rem;background:#f8fbfd;color:#203342;box-shadow:0 4px 16px #2033422b;border-radius:.75rem}.room-map-label strong,.room-map-label>span{display:block;line-height:1.5;overflow-wrap:anywhere}.room-map-label strong{font-size:.9375rem;font-weight:650;color:#145a81}.room-map-label>span{margin-top:.125rem;font-size:.8125rem}@media(min-width:640px)and (max-height:30rem){#operation-panel[data-tab=explore]:not(:has(#inspector:not([hidden])))>#menu-content{top:0;bottom:auto;left:calc(100% + .75rem);right:auto;width:min(20rem,calc(100vw - 19rem));max-height:calc(100dvh - 10.75rem)}.destination-tabs{padding-bottom:.25rem;margin-bottom:.25rem}.room-destination{min-height:44px;padding:.375rem .25rem}.room-destination>span{flex-direction:row;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.room-destination strong{font-size:.875rem}.room-destination .room-building-name{display:none}}.operation-panel[data-tab=route]:not(.route-preview) #route-status,.operation-panel[data-tab=route]:not(.route-preview) #operation-context{display:none}.sheet-peek,.sheet-controls{display:none}@media(max-width:767px){#app{--campus-footer-bottom: max(8px, calc(env(safe-area-inset-bottom, 0px) + 4px) );--dock-bottom: calc(var(--campus-footer-bottom) + var(--campus-watermark-height, 2rem) + .625rem)}#scene>.sim-watermark{bottom:var(--campus-footer-bottom)}}@media(max-width:639px){#app .destination-actions>button{min-height:44px;padding:.375rem}#operation-panel .inspector-heading{padding:.375rem .75rem}#operation-panel .info-body{padding:.75rem}#operation-panel #info-category{margin-bottom:.375rem}#operation-panel .info-body h2{font-size:1.375rem;margin-bottom:.5rem}#app #destination-note{margin-block:.5rem}#app .topbar{min-height:3rem;padding:.125rem .375rem;top:max(.5rem,env(safe-area-inset-top))}#app .topbar .brand img{width:1.5rem;height:1.5rem}#app .topbar .brand h1{font-size:.8125rem;line-height:1.3}#app .topbar .brand h1 span{display:block;margin:0;font-size:.6875rem}#app .topbar .more-label{display:none}.directory-controls{position:static}.directory-controls:before{display:none}#app .scene-tools{width:var(--bottom-control-width);height:var(--bottom-control-height)}#app .scene-tools .map-actions{width:100%}#app .scene-tools .map-mode{flex:0 0 44px;min-width:0}#app .scene-tools .map-mode button{width:44px;padding:.25rem;gap:.125rem}#app .scene-tools .map-mode svg{width:1.125rem;height:1.125rem}#app .scene-tools :is(.map-zoom,#map-recenter,#view-menu){flex-shrink:0}#operation-panel[data-sheet-state]{height:var(--sheet-height);max-height:none;bottom:calc(var(--dock-bottom) + var(--bottom-control-height) + var(--bottom-control-gap))}#operation-panel[data-sheet-state]:not([data-sheet-manual]):has(>#inspector:not([hidden])){height:auto;max-height:var(--sheet-height)}#operation-panel[data-sheet-state=collapsed]{left:50%;right:auto;width:var(--bottom-control-width);transform:translate(-50%)}#operation-panel[data-sheet-state]>.sheet-controls{display:block;position:absolute;inset:0 0 auto;z-index:4;height:0;pointer-events:none}.sheet-grabber{position:absolute;top:0;left:50%;transform:translate(-50%);display:flex;align-items:flex-start;justify-content:center;width:80px;height:44px;padding-top:6px;pointer-events:none;border-radius:.5rem}#operation-panel[data-sheet-state] :is(.operation-heading,.inspector-heading){touch-action:none}.sheet-grabber:focus-visible{outline:3px solid #1782bc;outline-offset:-3px}.sheet-grabber:active .sheet-grip{background:var(--blue)}.sheet-grip{width:2rem;height:.25rem;background:#9daeba;border-radius:1rem}#operation-panel[data-sheet-state]>#menu-content,#operation-panel[data-sheet-state][data-tab=explore]:not(:has(#inspector:not([hidden])))>#menu-content{flex:1;max-height:none;min-height:0}#operation-panel[data-sheet-state]>#inspector{flex:1;max-height:none;min-height:0}#operation-panel[data-sheet-state]>#route-status{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}#operation-panel[data-sheet-state]>:is(.operation-heading,#panel-back){flex-shrink:0}#operation-panel[data-sheet-state] .operation-heading:before{display:none}#operation-panel[data-sheet-state] #operation-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#operation-panel[data-sheet-state=collapsed]>:not(#sheet-peek){display:none!important}#operation-panel[data-sheet-state=collapsed]>#sheet-peek{display:flex;align-items:center;justify-content:space-between;flex:1;min-width:0;min-height:0;width:100%;padding:.75rem 1rem;font-size:1.0625rem;font-weight:650;text-align:left}#sheet-peek>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#sheet-peek svg{transform:rotate(-90deg)}}#app[data-exterior] #menu-collapse{justify-content:flex-start;color:var(--blue);font-size:.875rem;font-weight:500}#app[data-exterior] #operation-toggle-icon{order:-1;flex-basis:1.25rem}#app[data-exterior] #operation-panel :is(#menu-collapse,#sheet-peek) svg{transform:none}#app[data-exterior] #sheet-peek{justify-content:flex-start;gap:.5rem;color:var(--blue);font-size:.875rem;font-weight:500}#app[data-exterior] #sheet-peek>span:last-child{display:flex;order:-1}#walking-route-bar{display:none}@media(max-width:639px){#app[data-mode=walking] .topbar{padding:.25rem .5rem}#app[data-mode=walking] .brand img{width:1.75rem;height:1.75rem}#app[data-mode=walking] .brand h1 span{display:inline;margin-left:.375rem}#app[data-mode=walking] #operation-panel[data-mobile-guidance=compact]{height:4.25rem;width:var(--bottom-control-width);left:50%;right:auto;transform:translate(-50%)}#app[data-mode=walking] #operation-panel[data-mobile-guidance=compact]>:not(#walking-route-bar){display:none!important}#app[data-mode=walking] #operation-panel[data-mobile-guidance=compact]>#walking-route-bar{display:flex;align-items:center;gap:.5rem;padding:.5rem .625rem;width:100%;height:100%}#walking-route-details{flex:1;min-width:0;padding:.125rem .375rem;text-align:left}#walking-route-details strong,#walking-route-details span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#walking-route-details strong{font-size:.9375rem;font-weight:650}#walking-route-details span{font-size:.75rem;color:var(--muted)}#walking-route-stop{flex-shrink:0;min-width:4rem;padding:.5rem .625rem;font-size:.875rem}#app[data-mode=walking] #touch-controls #joystick{left:var(--edge);width:5.25rem;height:5.25rem;bottom:var(--walking-controls-bottom, 10rem)}#app[data-mode=walking] #touch-controls #jump{right:var(--edge);bottom:calc(var(--walking-controls-bottom, 10rem) + .875rem)}}#operation-panel[data-tab=route]>.operation-heading{border-bottom:1px solid var(--line)}#operation-panel[data-tab=route] #menu-collapse{justify-content:flex-start;gap:.5rem;color:var(--blue);font-size:.875rem;font-weight:500}#operation-panel[data-tab=route] #operation-toggle-icon{order:-1;flex-basis:1.25rem}#operation-panel[data-tab=route] #operation-toggle-icon svg{transform:none}#operation-panel[data-tab=route] #operation-context{display:none}.route-form-title{margin:0 0 .875rem;font-size:1.125rem;line-height:1.5;font-weight:650}#app[data-mode=walking] #touch-controls{visibility:visible}#app[data-mode=walking]:has(#operation-panel:not(.collapsed):not(.route-preview)) :is(#touch-controls,#controls-hint){visibility:hidden}#app[data-mode=walking] #controls-hint{display:block;visibility:visible;top:auto;bottom:var(--walking-hint-bottom, calc(var(--dock-bottom) + var(--bottom-control-height) + .75rem));z-index:5;max-width:min(29rem,calc(100% - 2 * var(--edge)));background:none;padding:0;border-radius:0;box-shadow:none;color:#203342;opacity:1;transition:opacity .22s ease-out,visibility 0s}#app[data-mode=walking]:has(#touch-controls:not([hidden])) #controls-hint h2{display:none}#app[data-mode=walking] #controls-hint[data-dismissed=true]{opacity:0;visibility:hidden;transition:opacity .22s ease-out,visibility 0s .22s}#walking-instruction{word-break:keep-all}@media(prefers-reduced-motion:reduce){#app #explore-intro,#app #explore-intro[data-dismissed=true],#app[data-mode=walking] #controls-hint,#app[data-mode=walking] #controls-hint[data-dismissed=true]{transition:none}}#app:has(#more-menu[open],#help-panel:not([hidden]),#source-panel:not([hidden]),#inspector:not([hidden]),#npc-dialog[open]) :is(#touch-controls,#controls-hint){visibility:hidden}#jump{flex-direction:column;gap:.125rem;font-size:.6875rem}#student-menu .student-card img{height:6rem}
