.portal-shell.experience-three .portal-main,.portal-shell.experience-three .portal-footer{display:none}
.three-host{flex:1;min-height:0;display:flex}
.three-workspace{display:grid;grid-template-columns:280px minmax(0,1fr);width:100%;height:100%;min-height:0;background:#e9e8df;color:#163629}
.three-workspace.panel-closed{grid-template-columns:1fr}
.three-stage{position:relative;isolation:isolate;overflow:hidden;min-width:0;min-height:0;background:#c7d7df;touch-action:none}
.three-canvas-mount{position:absolute;inset:0}
.three-canvas-mount canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}
.three-canvas-mount canvas:active{cursor:grabbing}
.three-notice{font-size:12px;line-height:1.6;padding:12px;background:#e9ecdf;border-radius:6px;margin-bottom:20px;color:#58684e}
.three-navigation{position:absolute;right:20px;top:80px;display:flex;flex-direction:column;border:1px solid #a9b7b0;border-radius:7px;overflow:hidden}
.three-navigation button{width:42px;height:42px;background:#fafbf5ef;border-bottom:1px solid #d1d8ca;font-size:20px;color:#183d29}
.three-navigation button:last-child{font-size:12px;border:0}
.three-navigation button:focus-visible,.three-workspace button:focus-visible{outline:3px solid #8b9948;outline-offset:-3px}
.three-stage .ex-loading{padding:40px;text-align:center}
.three-count{padding:10px 12px;border:1px solid #b9c8ab;background:#e2e8d9;font-size:13px;font-weight:600;border-radius:6px;margin-bottom:14px}
.three-layer{display:flex;gap:8px;align-items:center;font-size:12px;line-height:1.5;margin:10px 0;cursor:pointer}
.three-layer input{accent-color:#23462f}
.commercial-label-layer{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.commercial-label{position:absolute;transform:translate(-50%,-100%);width:188px;min-height:54px;padding:6px 9px;background:#f9f4e9;color:#244633;border:1px solid #58745c;border-radius:6px;box-shadow:0 2px 8px #182e2826;font:12px/1.3 Inter,sans-serif;pointer-events:auto;text-align:left;touch-action:none}
.commercial-label strong{display:inline-block;margin-right:7px;font-weight:700}.commercial-label small{display:block;color:#57685b;font-size:12px}.commercial-label.compact{width:64px;min-height:28px;text-align:center;padding:5px}.commercial-label.compact .commercial-type,.commercial-label.compact small{display:none}
.commercial-label[hidden],.commercial-label-layer[hidden]{display:none}.commercial-label:focus-visible{outline:3px solid #234934;outline-offset:2px}
.commercial-picker .ex-view small{display:block;line-height:1.45}
@media(max-width:650px){.commercial-label.compact{min-height:44px;display:flex;align-items:center;justify-content:center}.commercial-label[hidden]{display:none}}
.three-picked{position:absolute;left:18px;bottom:65px;max-width:330px;background:#fffef3f5;border:1px solid #c9d3be;border-radius:8px;padding:16px;color:#233c2b;box-shadow:0 4px 15px #23342225}
.three-picked strong{font-size:13px}.three-picked p{font-size:12px;line-height:1.55;margin-top:8px}.three-picked button{float:right;margin-left:10px;font-size:18px}
.three-warning{position:absolute;bottom:80px;left:20px;right:70px;background:#fff8de;padding:12px;border-radius:6px;font-size:12px}
.three-navigation button:nth-last-child(-n+2){font-size:12px}
.three-picked .three-inspect{float:none;display:block;margin:12px 0 0;padding:7px 12px;background:#23462f;color:#fff;border-radius:4px;font-size:12px}
.three-workspace .ex-disclaimer a{text-decoration:underline}
.three-drag-modes{display:flex;gap:6px;margin:0 0 14px}
.three-drag-modes button{padding:8px 10px;font-size:12px;border:1px solid #c5d3bd;border-radius:5px;background:#fff}
.three-drag-modes button[aria-pressed=true]{background:#23462f;color:#fff}
@media(max-width:650px){.street-active .ex-scene-top .ex-view-caption{display:none}}
.earth-dock.three-navigation,.earth-dock.ex-zoom{top:auto;bottom:82px;right:18px;display:flex;flex-direction:column;gap:5px;border:0;border-radius:0;overflow:visible;background:none;box-shadow:none;z-index:5}
.earth-dock.three-navigation button,.earth-dock.ex-zoom button{width:44px;height:38px;border:1px solid #d6ded5;background:#fffef9f5;color:#234533;border-radius:7px;font-size:12px;box-shadow:0 2px 7px #14201820}
.earth-dock button[aria-pressed=true]{background:#234934;color:#fff}
.earth-dock button[data-testid$="zoom-in"],.earth-dock button[data-testid$="zoom-out"]{font-size:23px}
.earth-dock .earth-compass,.earth-dock.three-navigation .earth-compass{position:relative;width:48px;height:48px;margin:0 -2px 4px;border:1px solid #cbd5ca;border-radius:50%;background:#fffef9f5;display:grid;place-items:center;touch-action:none;cursor:grab;box-shadow:0 2px 7px #14201820}
.earth-needle{display:flex;align-items:center;flex-direction:column;gap:1px;font:700 11px/1 sans-serif;color:#284b37;transform:rotate(var(--heading,0deg));pointer-events:none}
.earth-needle i{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:14px solid #a25c47}
.earth-compass-static{cursor:default!important}
.street-picking .three-canvas-mount canvas,.ex-scene.street-picking{cursor:crosshair}
.earth-help{position:absolute;left:18px;top:80px;max-width:310px;padding:16px;border:1px solid #cbd5ca;border-radius:8px;background:#fffef9f5;box-shadow:0 5px 20px #16362922;z-index:4;font-size:12px;line-height:1.55;color:#234533}
.earth-help p{margin:9px 0 0}
.earth-pick-hint{position:absolute;left:18px;right:80px;top:72px;padding:10px 14px;border:1px solid #8fafb0;border-radius:6px;background:#edf8f5f2;color:#204940;font-size:12px;line-height:1.45;pointer-events:none;z-index:4}
@media(max-width:650px){.earth-dock.three-navigation,.earth-dock.ex-zoom{right:12px;bottom:110px;gap:4px}.earth-dock.three-navigation button,.earth-dock.ex-zoom button{width:40px;height:34px}.earth-dock .earth-compass,.earth-dock.three-navigation .earth-compass{width:44px;height:44px}.earth-help{right:66px;left:12px;max-height:calc(100% - 155px);overflow:auto}.earth-pick-hint{left:12px;right:64px;top:65px}}
@media(max-width:1023px),(max-height:649px){.three-host{min-height:740px}.three-workspace{height:740px;grid-template-columns:260px minmax(0,1fr)}}
@media(max-width:650px){.three-host{min-height:0}.three-workspace{height:auto;display:flex;flex-direction:column}.three-stage{order:0;flex:none;height:58svh;min-height:360px}.three-workspace .ex-panel{order:1;overflow:visible}.three-navigation{right:12px;top:68px}.experience-tabs{flex-wrap:wrap}.experience-tabs button{flex:1 1 40%}}
/* Navigation-only update: stable viewport, scoped wheel controls, no pricing/layout-data changes. */
.earth-dock.three-navigation,.earth-dock.ex-zoom{align-items:flex-end}
.earth-dock button.nav-zoom-label{width:112px!important;font-size:12px!important;height:36px}
.nav-scroll-option{display:flex;align-items:center;gap:7px;padding:8px 10px;background:#fffef9f5;color:#234533;border:1px solid #cbd5ca;border-radius:6px;font:12px/1.3 Inter,sans-serif;cursor:pointer;max-width:165px;min-height:44px;user-select:none}
.nav-scroll-option input{accent-color:#234934;width:15px;height:15px;flex:none}
.rl-map-controls{align-items:flex-end}.rl-map-controls button{min-width:96px}
.street-walk-controls{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);background:#16382ded;backdrop-filter:blur(8px);border:1px solid #e4f0e52e;border-radius:10px;padding:6px 8px;z-index:5;box-shadow:0 5px 18px #14261e26;max-width:calc(100% - 24px);width:480px;color:#f4f8ee}
.street-toolbar{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr)) minmax(92px,1.6fr) 48px;gap:4px;align-items:center}
.street-prompt-copy{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:max-content;max-width:100%;padding:5px 9px;border-radius:5px;background:#16382de8;line-height:1.4;font-size:12px;text-align:center;pointer-events:none}
.street-walk-controls:has(.street-controls-menu) .street-prompt-copy{bottom:calc(100% + 98px)}
.street-group-button,.street-toolbar>.road-stop{min-height:44px;padding:6px;border:1px solid #f4f8ee36;border-radius:6px;background:transparent;color:#f4f8ee;font-size:12px}
.street-group-button[aria-expanded=true],.street-toolbar>.road-stop{background:#edf4e8;color:#173b2c}
.street-controls-menu{position:absolute;left:0;right:0;bottom:calc(100% + 6px);overflow:auto;padding:8px;background:#fffef9fa;border:1px solid #cbd5ca;border-radius:8px;color:#234533;box-shadow:0 5px 18px #173c2820;overscroll-behavior:contain}
.street-control-column{display:flex;gap:4px;min-width:0;margin:0;padding:0;border:0}
.street-control-column legend{font-size:12px;font-weight:600;margin-bottom:6px;color:#576b5b}
.street-control-column button{flex:1;min-width:0;min-height:44px;padding:6px 4px;border:1px solid #c1cfbc;border-radius:5px;background:#f9fbf4;color:#234934;font:12px/1.2 Inter,sans-serif;touch-action:none;user-select:none}
.street-control-column button:active{background:#234934;color:#fff}
.street-control-column button:disabled{opacity:.42;cursor:not-allowed;background:#ecefe7;color:#687468}
.street-wheel-option{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;cursor:pointer;font-size:12px;line-height:1.2}
.street-wheel-option input{width:17px;height:17px;accent-color:#234934;flex:none}
.street-active .three-stage .ex-scene-bottom{display:none}
.walk-controls-title{font-size:12px;font-weight:600;margin-bottom:7px}
.walk-controls-row{display:flex;align-items:center;gap:6px;margin-top:6px}
.walk-controls-row button,.street-junction button{flex:1;border:1px solid #bdcdb5;border-radius:5px;background:#f7f9f0;padding:9px 8px;font:12px/1.25 Inter,sans-serif;color:#234934;touch-action:none;user-select:none}
.walk-controls-row button:active{background:#234934;color:#fff}.walk-controls-row small{font-size:10px;line-height:1.4;flex:2}
.street-junction{position:absolute;top:80px;left:20px;max-width:calc(100% - 125px);padding:12px;background:#fff9e9f5;border:1px solid #c7b876;border-radius:7px;font-size:12px;z-index:6}
.street-junction>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}.street-junction p{margin-top:7px}
.three-stage,.ex-scene,.rl-map{overscroll-behavior:contain}
.road-arrow-layer{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.road-arrow-layer[hidden],.road-arrow-button[hidden]{display:none!important}
.road-arrow-button{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;width:72px;height:52px;padding:0;border:0;background:transparent;box-shadow:none;cursor:pointer;touch-action:manipulation}
.road-arrow-button:focus-visible{outline:2px solid #d3f1de;outline-offset:2px;border-radius:50%}
.road-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.road-route-actions{display:flex;gap:6px;flex-wrap:wrap}.road-route-actions button{flex:1;min-width:62px;min-height:40px;padding:7px;border:1px solid #bac8b8;border-radius:5px;background:#f8faf2;color:#234934;font:12px/1.2 Inter,sans-serif}
.road-route-actions button:disabled{opacity:.5}.road-route-actions .road-stop{background:#234934;color:white;border-color:#234934}
.street-extra-controls{margin-top:8px}.street-extra-controls summary{font-size:12px;cursor:pointer;min-height:24px;padding:3px 0}
@media(max-width:650px){
 .street-walk-controls{left:12px;right:12px;bottom:12px;transform:none;width:auto;max-width:none;padding:6px}
 .walk-controls-row button{padding:9px 5px;font-size:11px}
 .street-active .earth-dock.three-navigation{top:66px;bottom:auto;display:flex;flex-direction:row;right:12px;left:12px;justify-content:flex-end}
 .street-active .earth-dock.three-navigation .earth-compass{margin:0}
 .street-active .three-stage{min-height:560px}
 .earth-dock button.nav-zoom-label{width:104px!important}
 .nav-scroll-option{font-size:12px;padding:7px 8px;max-width:150px}
 .street-active .three-picked{bottom:240px;max-width:calc(100% - 30px);padding:10px}
 .street-junction{top:119px;left:12px;right:12px;max-width:none}
 .earth-dock.three-navigation,.earth-dock.ex-zoom{gap:3px}
 .three-stage,.ex-scene{min-height:560px}
 .three-stage .ex-view-caption{display:none}
 .three-picked{left:12px;right:142px;bottom:92px;max-width:none;max-height:calc(100% - 170px);overflow:auto;padding:12px}
 .street-active .three-picked{right:12px}
 .road-arrow-button{width:64px;height:52px}
 .road-route-actions{gap:4px}.road-route-actions button{min-height:40px;font-size:12px}
 .street-active .street-walk-controls{bottom:12px}
 .street-active .three-stage .ex-scene-bottom{display:none}
}
/* The 3D workspace must fit the actual window, including short Comet windows.
   Other portal tabs retain their existing layout and scrolling behavior. */
#root .portal-shell.experience-three{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.experience-three .portal-header,.experience-three .experience-nav{flex:0 0 auto;position:relative}
.experience-three .three-host{flex:1 1 0;min-height:0;overflow:hidden}
.experience-three .three-workspace{height:100%;min-height:0}
.experience-three .three-workspace .three-stage{height:100%;min-height:0}
.experience-three .three-workspace .ex-panel{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.three-panel-close{display:none}
.experience-three .three-picked{max-height:calc(100% - 145px);overflow:auto}
.experience-three .earth-help{max-height:calc(100% - 180px);overflow:auto}
.experience-three .street-controls-menu{max-height:min(330px,calc(100dvh - 210px))}
@media(max-height:649px){
 .experience-three .experience-nav{padding:6px 16px;gap:6px}
 .experience-three .preview-status{display:none}
 .experience-three .three-stage .earth-dock.three-navigation{top:68px;bottom:auto;left:12px;right:12px;flex-direction:row;flex-wrap:wrap;gap:4px;justify-content:flex-end}
 .experience-three .three-stage .earth-dock.three-navigation .earth-compass{margin:0}
 .experience-three .three-stage .ex-view-caption{display:none}
 .experience-three .street-walk-controls{bottom:12px}
 .experience-three .three-picked{bottom:12px;max-height:calc(100% - 144px)}
 .experience-three .three-stage .ex-scene-bottom{display:none}
}
@media(max-width:650px){
 .experience-three .three-workspace{display:block;position:relative}
 .experience-three .three-workspace .three-stage{position:absolute;inset:0}
 .experience-three .three-workspace .ex-panel{position:absolute;inset:0 auto 0 0;width:min(310px,calc(100% - 64px));height:100%;z-index:9;box-shadow:8px 0 24px #16362930}
 .three-panel-close{display:block;position:sticky;top:0;min-height:44px;margin:0 0 16px auto;padding:10px 12px;background:#234934;color:#fff;border-radius:6px;font-size:12px;z-index:1}
 .experience-three .three-stage .ex-scene-top .commercial-caption{display:block;position:absolute;left:0;top:50px;max-width:calc(100vw - 48px);font-size:12px;padding:7px 10px;pointer-events:none}
}
.experience-three .three-navigation.earth-dock{pointer-events:none}
.experience-three .three-navigation.earth-dock > *{pointer-events:auto}
