:root{font-family:Inter,Arial,sans-serif;color:#233e36;background:#f3f2ec;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header{height:108px;padding:24px 4%;display:flex;align-items:center;justify-content:space-between;gap:20px}.identity{display:flex;gap:16px;align-items:center}.mark{display:grid;place-items:center;width:43px;height:43px;border:1px solid #bdc8be;border-radius:50%;font-size:29px;color:#6b846e}.eyebrow{font-size:10px;letter-spacing:2.3px;margin:0 0 7px;font-weight:700}h1{font-size:24px;letter-spacing:-.6px;line-height:1;margin:0;font-weight:600}h1 span{color:#6d7a71;font-size:18px;margin-left:9px;font-weight:400}.pill{font-size:10px;letter-spacing:1px;border:1px solid #d3dacf;border-radius:20px;padding:10px 14px}main{padding:0 2%}.viewer{height:calc(100svh - 220px);min-height:340px;max-height:1000px;position:relative;overflow:hidden;border-radius:16px;background:#20332d;box-shadow:0 8px 25px #20332d12}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-4px}canvas:active{cursor:grabbing}canvas:focus-visible{outline:3px solid #fff}.room-tag{position:absolute;top:22px;left:24px;background:#fbfaf4e8;backdrop-filter:blur(10px);border-radius:30px;padding:10px 15px;font-size:12px;pointer-events:none}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#718c67;margin-right:5px}.tag-divider{margin:0 9px;color:#a1ad9b}.view-controls{display:flex;align-items:center;position:absolute;bottom:24px;left:50%;transform:translateX(-50%);background:#fbfaf4f5;box-shadow:0 2px 15px #0002;border:1px solid #ffffffa0;border-radius:12px;padding:5px;gap:2px}.view-controls button,button{border:0;background:transparent;border-radius:8px;color:#233e36;min-width:44px;min-height:44px;font:inherit;font-size:21px;cursor:pointer}.view-controls button:hover,button:hover{background:#e0e7dc}button:focus-visible{outline:2px solid #426b52;outline-offset:2px}button:disabled{opacity:.35;cursor:default}#zoom{font-size:12px;min-width:40px;text-align:center;font-variant-numeric:tabular-nums}#reset{font-size:13px;padding:0 12px}#reset span{font-size:23px;vertical-align:-2px;margin-right:5px}.divider{height:22px;width:1px;background:#cbd3c7;margin:0 5px}.drag-hint{position:absolute;bottom:40px;right:25px;color:white;font-size:12px;text-shadow:0 1px 4px #0009;pointer-events:none}footer{padding:22px 2%;display:flex;align-items:flex-start;justify-content:space-between;gap:30px}footer p{margin:0;font-size:12px;line-height:1.65}#instructions strong{font-weight:600;display:block;font-size:13px}#instructions span{color:#7b847b}.caption{color:#7b847b;max-width:290px;text-align:right;font-size:11px}.status{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#20332d;color:#f3f2ec;gap:14px;text-align:center;padding:25px;z-index:5}.status[hidden]{display:none}.status p{margin:0;max-width:440px;line-height:1.5}.status button{background:#edf1e7;padding:0 18px;font-size:15px}.spinner{height:28px;width:28px;border:2px solid #ffffff30;border-top-color:#dce9d2;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.viewer:fullscreen{border-radius:0;height:100vh;width:100vw;max-height:none}@media(max-width:650px){header{height:94px;padding:18px 5%}.mark{width:36px;height:36px;font-size:25px}.identity{gap:10px}.pill{display:none}h1{font-size:23px}.eyebrow{font-size:9px}.viewer{height:calc(100svh - 240px);min-height:340px;border-radius:12px}main{padding:0 3%}.room-tag{top:15px;left:14px;font-size:11px;padding:9px 12px}.view-controls{bottom:18px}.drag-hint{display:none}footer{padding:18px 3%;display:block}#instructions span{font-size:11px;display:block;max-width:320px}.caption{text-align:left;max-width:none;margin-top:12px;font-size:10px}#full{display:none}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
.tour-bar{display:flex;align-items:center;gap:12px;padding:0 1% 15px;min-height:57px}.tour-bar label{font-size:12px;font-weight:600}.tour-bar select{max-width:min(55vw,380px);min-height:40px;border:1px solid #cbd5c9;border-radius:8px;padding:0 34px 0 12px;color:#233e36;background:#fbfaf4;font:inherit;font-size:13px}.tour-bar select:focus-visible{outline:2px solid #426b52;outline-offset:2px}#coverageCount{font-size:11px;color:#6d7a71}#coverageToggle{font-size:12px;margin-left:auto;padding:0 10px}.coverage-panel{border:1px solid #d7dfd2;background:#e9eee3;border-radius:10px;margin:0 1% 14px;padding:12px 16px;font-size:12px;line-height:1.6}.coverage-panel[hidden]{display:none}.coverage-panel p{margin:3px 0}.viewer{height:calc(100svh - 277px)}.hotspots{position:absolute;inset:0;pointer-events:none}.hotspot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:transparent;color:#fff;pointer-events:auto;padding:8px;min-width:58px;max-width:190px;text-shadow:0 1px 5px #0009}.hotspot[hidden]{display:none}.hotspot:hover{background:transparent}.hotspot .target{display:grid;place-items:center;min-width:46px;height:46px;border-radius:50%;border:2px solid white;background:#274e40dc;box-shadow:0 2px 14px #0004;font-size:24px;text-shadow:none}.hotspot:hover .target{background:#52765b;transform:scale(1.06)}.hotspot .destination{font-size:11px;line-height:1.2;background:#20392cde;padding:6px 9px;border-radius:6px;white-space:normal}.hotspot:focus-visible{outline:2px solid white;outline-offset:2px}#backToRoom{font-size:12px}#backToRoom[hidden]{display:none}@media(max-width:650px){.tour-bar{padding:0 1% 11px;gap:8px;flex-wrap:wrap}.tour-bar label{font-size:11px}.tour-bar select{flex:1;max-width:calc(100% - 57px);font-size:12px}#coverageCount{font-size:10px;margin-left:1px}#coverageToggle{min-height:30px;padding:0;font-size:11px}.viewer{height:calc(100svh - 314px);min-height:340px}.hotspot .destination{font-size:10px;max-width:130px}.hotspot .target{min-width:42px;height:42px}.room-tag{max-width:calc(100% - 28px)}#cameraLabel{font-size:10px}}
.route-bar{display:flex;align-items:center;gap:12px;padding:13px 1% 0;font-size:11px}.route-bar[hidden]{display:none}.route-bar>span{flex-shrink:0;color:#6d7a71}.route-bar>div{display:flex;gap:7px;overflow-x:auto;padding:3px 0;scrollbar-width:thin}.route-bar button{min-height:36px;flex-shrink:0;white-space:nowrap;padding:0 12px;border:1px solid #cbd5c9;background:#fbfaf4;font-size:11px}.route-bar button:before{content:'↗';margin-right:6px;color:#648366}@media(max-width:650px){.route-bar{display:block;padding-top:12px}.route-bar>span{font-size:10px}.route-bar>div{padding-top:7px}.route-bar button{min-height:42px}}
.tour-map{position:absolute;right:18px;top:18px;width:360px;max-width:calc(100% - 36px);border:1px solid #ffffffa0;border-radius:12px;background:#fbfaf5f5;backdrop-filter:blur(12px);box-shadow:0 5px 20px #172d3028;color:#233e36;z-index:3;padding:10px 12px 9px;cursor:default}.tour-map[hidden]{display:none}.map-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:3px}.map-heading button{font-size:23px;min-height:30px;min-width:30px;line-height:1}#mapDrawing svg{display:block;width:100%;height:auto;overflow:visible;touch-action:manipulation}.map-current{display:flex;align-items:center;gap:7px;font-size:10px;line-height:1.5;margin-top:4px}.map-current strong{font-weight:600}.here-dot{width:7px;height:7px;border-radius:50%;background:#cb6b3e;flex-shrink:0}.map-note{font-size:9px;color:#66766a;margin:4px 0 0}.map-source{font-size:8px;color:#869087;margin:3px 0 0}.map-stop{cursor:pointer;outline:none}.map-stop .hit{fill:#668c76;fill-opacity:0}.map-stop .pin{fill:#5f8372;stroke:#fbfaf5;stroke-width:.19;transition:fill .12s}.map-stop:hover .pin,.map-stop:focus-visible .pin{fill:#274f3e;stroke:#233e36;stroke-width:.35}.map-stop[aria-current="location"] .pin{fill:#cb6b3e;stroke:#fff;stroke-width:.23}.map-stop:focus-visible .hit{fill:#668c76;fill-opacity:.18;stroke:#233e36;stroke-width:.12}.map-floor{fill:#e7e9df;stroke:#84998b;stroke-width:.11;stroke-linejoin:round}.map-floor.is-current{fill:#e7d5bd}.map-room-label{font:1.25px Arial,sans-serif;fill:#798778;pointer-events:none}.map-toggle{position:absolute;right:18px;top:18px;z-index:3;background:#fbfaf4f5;border:1px solid #ffffffa0;box-shadow:0 2px 12px #0002;padding:0 16px;font-size:12px;min-height:40px}.map-toggle[hidden]{display:none}@media(max-width:900px){.tour-map{width:310px}}@media(max-width:650px){.tour-map{right:12px;top:62px;width:calc(100% - 24px);max-width:none;padding:8px 11px}.map-toggle{right:12px;top:12px;min-height:36px;min-width:50px;padding:0 10px;font-size:11px}.room-tag{max-width:calc(100% - 87px);font-size:10px;top:13px;left:12px;padding:9px 10px}#cameraLabel,.room-tag .tag-divider{display:none}.map-heading{font-size:11px}.map-current{font-size:10px}.map-note{font-size:9px}.map-source{font-size:8px}}
@media(max-width:650px){#mobileMapMount .tour-map{position:relative;inset:auto;width:100%;max-width:none;margin:12px 0 0;padding:11px 14px;box-shadow:0 2px 12px #172d3012;background:#fbfaf5}#mobileMapMount .map-heading{font-size:12px}#mobileMapMount .map-note{font-size:10px}#mobileMapMount .map-source{font-size:9px}}
@media(min-width:651px) and (max-height:650px){.tour-map{width:280px;padding:8px 10px}.map-heading{margin-bottom:0}.map-current{font-size:9px}.map-note,.map-source{font-size:8px}}
/* Portable tour v8: plain labels and compact touch navigation. */
.room-picker{display:flex;align-items:center;gap:12px;min-width:0}#roomsToggle,#routesToggle{display:none}.tour-bar{position:relative}.tour-bar select{min-height:44px}.map-heading button{min-height:44px;min-width:44px}.map-room-label{font-size:1.05px}.view-controls{z-index:2}.room-tag{z-index:2}.hotspot{touch-action:manipulation}.hotspot .target{min-width:46px;height:46px}.route-bar button{min-height:44px}button,select,a{-webkit-tap-highlight-color:transparent}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}footer{padding-bottom:max(18px,env(safe-area-inset-bottom))}button:focus-visible,select:focus-visible{outline:3px solid #548566;outline-offset:3px}.viewer:fullscreen .view-controls{bottom:max(16px,env(safe-area-inset-bottom))}.viewer:fullscreen .room-tag{top:max(16px,env(safe-area-inset-top))}
@media(max-width:650px),(max-width:1000px) and (max-height:500px){
 header{height:64px;padding:10px 4%;gap:8px}.identity{gap:9px}.mark{width:31px;height:31px;font-size:22px}.eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:5px}h1{font-size:19px}h1 span{font-size:15px;margin-left:5px}.pill{display:none}main{padding:0 10px}.tour-bar{min-height:52px;gap:8px;padding:0 2px 8px;flex-wrap:nowrap}#roomsToggle{display:block;min-height:44px;padding:0 16px;background:#e6ecdf;font-size:13px;white-space:nowrap}#roomsToggle span{margin-left:12px}.room-picker{display:none;position:absolute;top:46px;left:0;right:0;padding:16px;background:#fbfaf5;border:1px solid #cbd5c9;border-radius:12px;box-shadow:0 5px 24px #20392c30;z-index:8;gap:10px}.room-picker.is-open{display:flex}.room-picker label{white-space:nowrap;font-size:12px}.tour-bar .room-picker select{flex:1;min-width:0;max-width:none;width:100%;font-size:16px;min-height:48px;padding-left:10px}#coverageCount{font-size:10px;max-width:85px;line-height:1.35;margin:0}#coverageToggle{min-height:44px;font-size:11px;padding:0 8px;white-space:nowrap}.coverage-panel{font-size:12px;margin-bottom:10px}.viewer{height:calc(100svh - 132px - env(safe-area-inset-top));height:calc(100dvh - 132px - env(safe-area-inset-top));min-height:280px;max-height:none;border-radius:12px}.room-tag{top:12px;left:10px;max-width:calc(100% - 82px);padding:9px 10px;font-size:11px;line-height:1.4}#cameraLabel,.room-tag .tag-divider{display:none}.map-toggle{top:10px;right:10px;min-height:44px;min-width:54px;padding:0 10px;font-size:12px}.view-controls{bottom:max(12px,env(safe-area-inset-bottom));padding:4px;gap:0;max-width:calc(100% - 20px)}.view-controls button{min-height:44px;min-width:44px}#reset{font-size:12px;padding:0 10px}#zoom{font-size:11px;min-width:32px}.divider{margin:0 3px}.drag-hint{display:none}#full{display:block}#full[hidden]{display:none}.hotspot{max-width:150px;padding:6px}.hotspot .destination{font-size:11px;line-height:1.3;max-width:136px}.hotspot .target{min-width:46px;height:46px}.route-bar{display:block;padding:10px 0 0}.desktop-routes-label{display:none}#routesToggle{display:flex;width:100%;align-items:center;justify-content:space-between;min-height:46px;font-size:13px;padding:0 14px;border:1px solid #cbd5c9;background:#fbfaf4}#routeLinks{display:none;padding-top:8px;gap:8px;flex-wrap:wrap;overflow:visible}#routeLinks.is-open{display:flex}.route-bar #routeLinks button{min-height:44px;white-space:normal;text-align:left;font-size:12px;padding:8px 12px;max-width:100%}footer{padding:14px 0 max(18px,env(safe-area-inset-bottom));display:block}#instructions strong{font-size:12px}#instructions span{font-size:11px;max-width:none}.caption{text-align:left;max-width:none;margin-top:8px;font-size:10px}#mobileMapMount .tour-map{position:relative;inset:auto;width:100%;max-width:none;margin:10px 0 0;padding:11px 14px;box-shadow:0 2px 12px #172d3012;background:#fbfaf5}#mobileMapMount .map-heading{font-size:13px}#mobileMapMount .map-current{font-size:12px}#mobileMapMount .map-note{font-size:11px}#mobileMapMount .map-source{font-size:10px}#mobileMapMount{scroll-margin-top:12px}.map-stop .hit{r:1.7px}.map-stop .pin{r:.65px}
}
@media(max-width:1000px) and (max-height:500px){header{height:44px;padding:5px 14px}.eyebrow,.mark{display:none}h1{font-size:17px}h1 span{font-size:14px}.tour-bar{min-height:48px;padding-bottom:4px}.viewer{height:calc(100dvh - 104px);min-height:180px}.room-tag{top:8px}.map-toggle{top:6px}.view-controls{bottom:max(6px,env(safe-area-inset-bottom))}.hotspot .destination{font-size:10px}.hotspot{gap:2px}#coverageCount{max-width:none}.room-picker{top:44px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.hotspot:hover .target{transform:none}}

body{padding-top:env(safe-area-inset-top)}
@media(max-width:650px),(max-width:1000px) and (max-height:500px){#roomsToggle,#coverageToggle,#routesToggle{font-size:13px}.room-tag{font-size:12px}.hotspot .destination{font-size:12px}.map-toggle{font-size:13px}.map-note{font-size:12px}#coverageCount{font-size:11px}.route-bar #routeLinks button{font-size:13px}}

/* Boronia presentation: hide the technical camera readout, keep viewer behaviour. */
#cameraLabel,.room-tag .tag-divider{display:none}
@media(max-width:380px){h1{font-size:21px}h1 span{font-size:15px;margin-left:5px}.mark{display:none}}

/* Embedded mode uses a stable viewer height so its parent can fit all controls. */
.tour-embedded .viewer{height:580px;min-height:0;max-height:none}
.tour-embedded .viewer:fullscreen{height:100vh}
@media(max-width:650px){.tour-embedded .viewer{height:420px}.tour-embedded .viewer:fullscreen{height:100vh}}
/* Mobile panorama fills the tour window; navigation floats above it. */
.tour-expanded, .tour-expanded body { height: 100%; overflow: hidden; }
.tour-expanded body { display: flex; flex-direction: column; }
.tour-expanded [hidden] { display: none !important; }
.tour-expanded header { display: none; }
.tour-expanded main { position: relative; flex: 1; min-height: 0; display: block; padding: 0; }
.tour-expanded .viewer { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; max-height: none; border-radius: 0; }
.tour-expanded .viewer:fullscreen { height: 100vh; }
.tour-expanded .tour-bar { position: absolute; top: 12px; left: 12px; right: 12px; z-index: 4; display: flex; flex-wrap: nowrap; gap: 8px; min-height: 44px; padding: 0; }
.tour-expanded .tour-bar label, .tour-expanded #coverageCount { display: none; }
.tour-expanded .tour-bar select { flex: 1; min-width: 0; max-width: none; min-height: 44px; background: #fbfaf4f5; font-size: 12px; }
.tour-expanded #coverageToggle { flex-shrink: 0; min-height: 44px; padding: 0 12px; margin: 0; background: #fbfaf4f5; font-size: 12px; }
.tour-expanded .room-tag { top: 68px; left: 12px; max-width: calc(100% - 100px); font-size: 11px; padding: 12px; }
.tour-expanded .map-toggle { top: 68px; right: 12px; min-height: 44px; padding: 0 12px; }
.tour-expanded .view-controls { bottom: 86px; white-space: nowrap; }
.tour-expanded #reset { padding: 0 8px; }
.tour-expanded .drag-hint, .tour-expanded #full { display: none; }
.tour-expanded .route-bar { position: absolute; bottom: 30px; left: 12px; right: 12px; z-index: 3; display: flex; padding: 0; }
.tour-expanded .route-bar > span { display: none; }
.tour-expanded .route-bar > div { width: 100%; padding: 3px 0; }
.tour-expanded .route-bar button { min-height: 44px; background: #fbfaf4f5; }
.tour-expanded footer { position: absolute; bottom: 0; left: 0; right: 0; z-index: 3; display: block; padding: 5px 10px; background: #20332de8; color: #fff; pointer-events: none; }
.tour-expanded #instructions { display: none; }
.tour-expanded .caption { font-size: 10px; color: #fff; text-align: center; max-width: none; margin: 0; }
.tour-expanded .tour-map, .tour-expanded #mobileMapMount .tour-map { position: absolute; inset: 120px 12px auto; width: calc(100% - 24px); max-height: calc(100% - 200px); overflow: auto; z-index: 5; margin: 0; background: #fbfaf5; }
.tour-expanded .coverage-panel { position: absolute; top: 64px; left: 12px; right: 12px; max-height: calc(100% - 150px); overflow: auto; z-index: 6; margin: 0; }
@media (orientation: landscape) {
  .tour-expanded .view-controls { bottom: 30px; left: auto; right: 12px; transform: none; }
  .tour-expanded .route-bar { right: 310px; }
  .tour-expanded .tour-map, .tour-expanded #mobileMapMount .tour-map { inset: 64px 12px auto auto; width: min(360px, calc(100% - 24px)); max-height: calc(100% - 94px); }
}

/* Swiping and long presses must not select tour labels or open iOS text callouts. */
body, body * { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }

/* Keep v9 Rooms and connected-route menus compact inside the expanded tour. */
.tour-expanded #roomsToggle { display: block; min-height: 44px; padding: 0 16px; font-size: 13px; background: #fbfaf4f5; }
.tour-expanded #coverageToggle { margin-left: auto; }
.tour-expanded .room-picker { display: none; position: absolute; top: 52px; left: 0; right: 0; padding: 12px; background: #fbfaf5; border: 1px solid #cbd5c9; border-radius: 10px; z-index: 8; }
.tour-expanded .room-picker.is-open { display: flex; }
.tour-expanded .room-picker select { width: 100%; font-size: 16px; min-height: 48px; }
.tour-expanded .route-bar { display: block; }
.tour-expanded #routesToggle { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 44px; padding: 0 14px; font-size: 13px; border: 1px solid #cbd5c9; }
.tour-expanded #routeLinks { display: none; position: absolute; bottom: 52px; left: 0; right: 0; max-height: 45dvh; overflow: auto; flex-wrap: wrap; gap: 8px; padding: 12px; border-radius: 10px; background: #fbfaf5; box-shadow: 0 2px 16px #0003; }
.tour-expanded #routeLinks.is-open { display: flex; }
.tour-expanded #routeLinks button { max-width: 100%; white-space: normal; text-align: left; padding: 8px 12px; }
.tour-expanded body { padding: 0; }
