/* A dedicated handheld shell. Desktop retains its original navigation. */
#mobile-ui{display:none}
body.mobile-mode{--mobile-header:64px;--mobile-nav:89px;--mobile-card:226px;--mobile-player:276px;--mobile-top:96px;--mobile-bottom:76px;--mobile-right:0px;height:100dvh}
body.mobile-mode .site-header{height:calc(var(--mobile-header) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));gap:12px}
body.mobile-mode .brand{gap:8px}body.mobile-mode .brand img{width:36px;height:36px}body.mobile-mode .brand>span{font-size:9.5px;line-height:1.3}
body.mobile-mode .header-support{font-size:13px;padding:10px 12px;min-height:44px;margin-left:auto}body.mobile-mode .header-support .icon{width:15px}
body.mobile-mode .header-location,body.mobile-mode .site-footer,body.mobile-mode .left-panel,body.mobile-mode .scene-tools,body.mobile-mode .scene-caption,body.mobile-mode .navigation-hint,body.mobile-mode .compass,body.mobile-mode #help-panel,body.mobile-mode #detail-panel,body.mobile-mode #story-panel,body.mobile-mode #vision-panel,body.mobile-mode #inside-caption{display:none}
body.mobile-mode #experience{top:calc(var(--mobile-header) + env(safe-area-inset-top,0px));bottom:calc(var(--mobile-nav) + env(safe-area-inset-bottom,0px))}
body.mobile-mode #scene-container{inset:var(--mobile-top) var(--mobile-right) var(--mobile-bottom) 0}
body.mobile-mode #mobile-ui{display:block;position:absolute;inset:0;z-index:10;pointer-events:none}
#mobile-ui button,#mobile-ui section,#mobile-ui nav{pointer-events:auto}
#mobile-ui button{min-height:44px}#mobile-ui button:disabled{color:#59656e!important;opacity:1}
.mobile-welcome{position:absolute;top:14px;left:20px;right:108px;pointer-events:none}.mobile-welcome>span{font-size:11px;color:#5d594f;letter-spacing:.025em}.mobile-welcome h1{font-size:22px;line-height:1.17;letter-spacing:-.6px;margin:5px 0 0;font-weight:750}.mobile-welcome h1>span{color:var(--blue)}
.mobile-view-tools{position:absolute;top:15px;left:14px;right:14px;display:flex;justify-content:flex-end;gap:8px;pointer-events:none}.mobile-view-tools>button{background:white;border:1px solid #d0cec4;border-radius:12px;box-shadow:0 3px 12px #3c32130c;font-size:12px;font-weight:750;padding:8px 12px;pointer-events:auto}
.mobile-view-tools .mobile-return{margin-right:auto;display:flex;gap:8px;align-items:center;font-size:13px;white-space:nowrap}.mobile-return .icon{transform:rotate(180deg);width:17px}
.mobile-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;background:transparent;border-radius:10px;padding:10px}.mobile-view-tools>.mobile-icon{padding:10px}.mobile-icon>.icon{width:18px;height:18px}
.mobile-help-panel{position:absolute;top:68px;right:14px;width:280px;max-width:calc(100% - 28px);z-index:14;border-radius:16px;background:white;padding:18px;box-shadow:0 12px 40px #1c1c1c30;border:1px solid #d2dbe0;font-size:14px;line-height:1.5;max-height:calc(100% - 80px);overflow:auto}.mobile-help-panel p{margin:10px 0;color:#4e5b63}.mobile-help-panel>div{display:flex;gap:8px}.mobile-help-panel button{background:#eef3f9;color:var(--blue);border-radius:9px;min-width:44px;padding:10px}.mobile-help-panel button:last-child{flex:1;font-size:13px;font-weight:750}
.mobile-tour-invite{position:absolute;bottom:14px;left:16px;right:16px;display:flex;align-items:center;text-align:left;gap:12px;background:#fff;border:1px solid #d4cec0;border-radius:15px;padding:11px 14px;box-shadow:0 5px 18px #5547210a;color:var(--ink);font-size:14px;font-weight:750}.mobile-tour-invite>span:first-child{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--blue);color:white;flex-shrink:0}.mobile-tour-invite strong{display:block;font-size:11px;font-weight:500;color:#586169;line-height:1.5;margin-top:2px}
.mobile-nav{position:fixed;z-index:25;bottom:0;left:0;right:0;background:white;border-top:1px solid #d7dddF;padding:0 max(10px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(10px,env(safe-area-inset-left,0px))}.mobile-concept{height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1;color:#53616a;gap:6px}.mobile-concept::before{content:'';height:5px;width:5px;border:1px solid var(--blue);transform:rotate(45deg)}.mobile-nav-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:64px;gap:4px;align-items:center}.mobile-nav-items>button{background:white;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;height:54px;font-size:12px;font-weight:650;color:#53616a;min-width:0;padding:5px 3px}.mobile-nav-items>button>.icon{width:20px;height:20px}.mobile-nav-items>button[aria-current=page]{background:#fff3c2;color:var(--ink);box-shadow:inset 0 -3px 0 var(--yellow);font-weight:800}
body.mobile-mode[data-mobile-mode=facility],body.mobile-mode[data-mobile-mode=stories],body.mobile-mode[data-mobile-mode=tour]{--mobile-top:68px;--mobile-bottom:calc(var(--mobile-card) + 10px)}
body.mobile-mode[data-mobile-mode=stories],body.mobile-mode[data-mobile-mode=tour]{--mobile-bottom:calc(var(--mobile-player) + 10px)}
body.mobile-mode.tour-ending{--mobile-player:min(60%,360px)}
body.mobile-mode.mobile-interior{--mobile-card:260px}body.mobile-mode.mobile-card-expanded{--mobile-card:min(60%,440px)}body.mobile-mode.mobile-player-expanded{--mobile-player:min(61%,460px)}
.mobile-card{position:absolute;bottom:0;left:0;right:0;height:var(--mobile-card);background:white;border:1px solid #d6dadc;border-bottom:none;border-radius:22px 22px 0 0;box-shadow:0 -5px 24px #61503312;display:flex;flex-direction:column;overflow:hidden;padding:0;animation:mobile-card-in .2s ease-out}
.mobile-card-head{padding:3px 12px 0 19px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;height:44px}.mobile-card-head>span{font-size:11px;font-weight:750;color:var(--blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-card-head>.mobile-icon{width:44px;min-height:44px;height:44px;padding:12px}
.mobile-card-scroll{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:2px 20px 12px;scroll-padding-block:10px;touch-action:pan-y}
.mobile-card h2{font-size:21px;line-height:1.2;font-weight:750;letter-spacing:-.4px;margin:1px 0 8px}.mobile-card p{font-size:14px;line-height:1.5;color:#414e57;margin:0 0 12px}.mobile-card:not(.mobile-player) #mobile-facility-copy{margin-bottom:0}
body.mobile-mode:not(.mobile-card-expanded) #mobile-facility-copy{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.mobile-card-actions{display:flex;gap:9px;padding:10px 16px 12px;border-top:1px solid var(--line);flex-shrink:0;background:white}.mobile-card-actions>button{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;line-height:1.3;padding:10px 12px;flex:1;white-space:nowrap;border-radius:11px;background:#edf3f9;color:var(--blue);font-weight:750}.mobile-card-actions .icon{width:16px;height:16px}
#mobile-ui .mobile-primary{background:var(--blue);color:white;border-color:var(--blue);border-radius:11px;font-weight:750}body.mobile-card-expanded #mobile-more .icon{transform:rotate(180deg)}
.mobile-relationship{margin-top:17px;padding:14px 0 0;border-top:1px solid var(--line)}.mobile-relationship>span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;font-weight:800;color:var(--blue)}.mobile-relationship p{margin-top:7px}.mobile-card .mobile-source{font-size:11px;line-height:1.5;color:#5a6369;margin-top:14px}.mobile-text-action{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 0;border-top:1px solid var(--line);font-size:13px;font-weight:750;background:white;color:var(--blue);gap:10px}.mobile-text-action .icon{width:17px}.mobile-spaces{display:flex;gap:7px;overflow-x:auto;padding:12px 2px 7px;scrollbar-width:thin;scroll-snap-type:x proximity;touch-action:pan-x}.mobile-spaces>button{border:1px solid #b8c7d7;border-radius:10px;padding:8px 10px;flex-shrink:0;font-size:12px;background:white;scroll-snap-align:start;color:var(--blue);font-weight:700}.mobile-spaces>button[aria-pressed=true]{background:var(--yellow);color:var(--ink);border-color:#a38930}#mobile-room-list{font-size:13px;line-height:1.5}#mobile-room-list summary{padding:10px 0;font-weight:700}#mobile-rooms{padding-left:23px;margin:4px 0 12px}
.mobile-player{height:var(--mobile-player)}.mobile-player-head{display:flex;align-items:center;gap:8px;flex-shrink:0;height:44px;padding:0 9px 0 19px;font-size:11px;color:var(--blue);font-weight:750}.mobile-player-head>button:first-child{font-size:11px;color:var(--blue);background:none;padding:0;text-align:left;font-weight:750}.mobile-player-head>.mobile-icon{margin-left:0;height:38px;min-height:38px!important;width:38px}.mobile-player-head>#mobile-player-count{margin-left:auto;white-space:nowrap;color:#58636b}.mobile-player-progress{height:3px;background:#e4eaf0;flex-shrink:0}.mobile-player-progress>span{display:block;background:var(--yellow);height:100%}.mobile-player-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:10px 12px 12px;background:white;flex-shrink:0}.mobile-player-controls>button{border-radius:10px;border:1px solid #c6d2de;background:white;color:var(--blue);font-size:13px;font-weight:750;padding:8px 3px;line-height:1.3}.mobile-outline{border:1px solid #b9c9d9;border-radius:10px;padding:9px 13px;color:var(--blue);background:#f4f7fb;font-size:13px;font-weight:700;margin-bottom:5px}.mobile-stop-list{display:flex;flex-direction:column;gap:5px}.mobile-stop-list>button{padding:10px;text-align:left;border-radius:8px;background:#eef3f9;font-size:13px}.mobile-stop-list>button[aria-current=true]{background:#fff0b4;font-weight:750}body.mobile-player-expanded #mobile-player-expand .icon{transform:rotate(180deg)}.mobile-ending{display:flex;gap:8px;padding:6px 16px 10px;flex-shrink:0}.mobile-ending>button{flex:1;min-width:0;font-size:13px;font-weight:750;border:1px solid #b9c9d9;border-radius:11px;background:white;color:var(--blue);padding:9px 6px}
.mobile-drawer-backdrop{position:absolute;inset:0;background:#24251e24;width:100%;border-radius:0;z-index:19;animation:mobile-card-in .2s ease-out}
.mobile-drawer{position:absolute;bottom:0;left:0;right:0;height:min(84%,680px);background:white;z-index:20;border-radius:24px 24px 0 0;box-shadow:0 -9px 40px #23221c25;border-top:1px solid white;display:flex;flex-direction:column;overflow:hidden;animation:mobile-card-in .22s ease-out}.mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 15px 16px 21px;border-bottom:1px solid var(--line);flex-shrink:0}.mobile-drawer-head h2{font-size:23px;line-height:1.15;letter-spacing:-.5px;margin:6px 0 0}.mobile-drawer-head span{font-size:11px;color:#58646d}.mobile-drawer-scroll{padding:0 17px 20px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y}
#mobile-places>h3{font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:800;color:var(--blue);margin:22px 4px 8px}.mobile-place{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:white;border-bottom:1px solid #e9ecee;padding:13px 4px;border-radius:0;min-height:70px!important}.mobile-place-icon{width:39px;height:39px;display:grid;place-items:center;background:#eff4fa;color:var(--blue);border-radius:12px;flex-shrink:0}.mobile-place>span:nth-child(2){min-width:0;flex:1}.mobile-place strong{display:block;font-size:14px;font-weight:750;line-height:1.35}.mobile-place small{display:block;color:#636e76;font-size:11px;line-height:1.4;margin-top:4px}.mobile-place>.icon{width:17px;color:#6e7c86}.mobile-place[aria-pressed=true]{background:#fff5ce;border-radius:11px;padding-left:9px;padding-right:9px}.mobile-place[aria-pressed=true] .mobile-place-icon{background:var(--yellow);color:var(--ink)}
#mobile-stories{padding-top:16px;display:grid;gap:12px}.mobile-story{display:block;padding:17px;width:100%;text-align:left;background:#f1f5fa;border:1px solid #d7e1eb;border-radius:16px}.mobile-story-icon{display:grid;place-items:center;width:34px;height:34px;background:white;color:var(--blue);border-radius:10px;margin-bottom:11px}.mobile-story strong{font-size:17px;line-height:1.3;font-weight:750;display:block;letter-spacing:-.2px}.mobile-story p{font-size:13px;line-height:1.5;color:#53616c;margin:7px 0 12px}.mobile-story-meta{display:flex;justify-content:space-between;align-items:center;color:var(--blue);font-size:11px;font-weight:750}.mobile-story-meta .icon{width:17px}
#mobile-tour-intro{padding:24px 5px 9px}.mobile-tour-symbol{height:52px;width:52px;display:grid;place-items:center;background:var(--yellow);border-radius:16px}.mobile-tour-symbol .icon{width:27px;height:27px}#mobile-tour-intro h3{font-size:28px;line-height:1.18;letter-spacing:-.7px;font-weight:750;margin:20px 0 12px;max-width:290px}#mobile-tour-intro p{font-size:15px;line-height:1.6;color:#53616a}.mobile-tour-facts{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0}.mobile-tour-facts>span{font-size:11px;padding:6px 8px;background:#edf3f9;border-radius:6px;color:var(--blue);font-weight:700}#mobile-tour-intro .mobile-tour-pacing{font-size:13px}#mobile-start-tour{width:100%;display:flex;justify-content:space-between;align-items:center;min-height:50px!important;font-size:14px;padding:13px 16px;margin-top:22px}
body.mobile-mode #fallback,body.mobile-mode .inside-open #fallback{inset:0 12px;gap:4px}body.mobile-mode .fallback-message{font-size:11px;line-height:1.35;padding-top:5px}body.mobile-mode .fallback-message>strong{display:none}body.mobile-mode .fallback-message>p{margin:0}body.mobile-mode:not([data-mobile-mode=campus]) .fallback-message{display:none}body.mobile-mode #campus-plan{border-radius:16px}body.mobile-mode .plan-north{font-size:11px;padding:3px 5px;top:8px;right:8px}body.mobile-mode .hotspot-label{font-size:11px;min-width:0;max-width:150px;white-space:normal;line-height:1.4}body.mobile-mode.detail-open .hotspot:not([aria-pressed=true]){visibility:hidden}body.mobile-mode .connection-marker{font-size:11px;padding:4px;gap:4px}body.mobile-mode .connection-marker>span{max-width:130px;overflow:hidden;text-overflow:ellipsis}body.mobile-mode .connection-marker>b{width:20px;height:20px;font-size:11px}
body.mobile-mode .project-support{width:100%;max-width:100%;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 20px);margin:auto 0 0;border-radius:24px 24px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}body.mobile-mode .support-header{padding:12px 17px}body.mobile-mode .support-body{padding:22px 22px 17px}body.mobile-mode #support-title{font-size:28px}
@keyframes mobile-card-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:390px){body.mobile-mode .header-support .icon{display:none}.mobile-welcome{right:97px;left:16px}.mobile-welcome h1{font-size:20px}.mobile-view-tools{right:12px;gap:5px}.mobile-view-tools>button{padding:8px 9px;font-size:11px}.mobile-view-tools>.mobile-icon{width:40px;padding:9px}.mobile-card h2{font-size:20px}.mobile-card-actions{padding-inline:12px;gap:7px}.mobile-card-actions>button{font-size:12px;padding:10px 8px}}
@media(max-height:700px) and (orientation:portrait){body.mobile-mode{--mobile-card:202px;--mobile-player:234px;--mobile-header:58px;--mobile-top:94px;--mobile-bottom:70px}body.mobile-mode.mobile-interior{--mobile-card:234px}body.mobile-mode.mobile-card-expanded{--mobile-card:59%}body.mobile-mode.tour-ending{--mobile-player:60%}body.mobile-mode.mobile-player-expanded{--mobile-player:61%}.mobile-tour-invite{bottom:9px;padding:9px 12px}.mobile-card-scroll{padding-inline:17px}.mobile-card h2{font-size:19px}.mobile-card p{font-size:13px}.mobile-card-head{height:44px}.mobile-card-actions{padding-top:8px;padding-bottom:9px}.mobile-player-head{height:44px}.mobile-player-controls{padding-top:8px;padding-bottom:9px}.mobile-drawer{height:90%}}
/* Landscape uses the broad canvas and a side reading card, with the same thumb navigation. */
@media(orientation:landscape) and (max-height:600px){body.mobile-mode{--mobile-header:52px;--mobile-nav:77px;--mobile-top:62px;--mobile-bottom:10px;--mobile-right:0px}body.mobile-mode .brand img{width:30px;height:30px}body.mobile-mode .brand>span{font-size:8px}.mobile-nav-items{height:54px}.mobile-nav-items>button{height:46px;flex-direction:row;gap:9px;font-size:12px}.mobile-concept{height:22px}.mobile-welcome{top:8px;left:18px}.mobile-welcome>span{font-size:10px}.mobile-welcome h1{font-size:19px;margin-top:3px}.mobile-welcome h1 br{display:none}.mobile-view-tools{top:9px}.mobile-tour-invite{left:16px;right:auto;bottom:12px;width:245px;background:#fffffff2;z-index:2}.mobile-tour-invite strong{font-size:10px}body.mobile-mode[data-mobile-mode=facility],body.mobile-mode[data-mobile-mode=stories],body.mobile-mode[data-mobile-mode=tour]{--mobile-right:42%;--mobile-top:58px;--mobile-bottom:8px}.mobile-card,.mobile-player{left:auto;width:42%;height:100%;border-radius:17px 0 0 0;border-left:1px solid var(--line);top:0;bottom:0}.mobile-card-scroll{padding-inline:16px}.mobile-card h2{font-size:19px}.mobile-card p{font-size:13px}.mobile-card-actions{padding:8px 10px;gap:6px}.mobile-card-actions>button{font-size:12px;padding:8px}.mobile-card-actions .icon{display:none}.mobile-card-head{height:44px;padding-left:16px}.mobile-player-head{height:44px;padding-left:16px}.mobile-player-controls{padding:8px;gap:5px}.mobile-player-controls>button{font-size:12px}.mobile-ending{padding:4px 10px 8px}.mobile-ending>button{font-size:12px}body.mobile-mode:not([data-mobile-mode=campus]) .mobile-view-tools{right:calc(42% + 12px)}.mobile-help-panel{left:14px;right:auto;top:59px;max-height:calc(100% - 68px)}.mobile-drawer{left:auto;right:0;top:0;height:100%;width:55%;max-width:510px;border-radius:18px 0 0 0}.mobile-drawer-head{padding:10px 13px 10px 18px}.mobile-drawer-head h2{font-size:21px;margin-top:4px}#mobile-tour-intro{padding-top:16px}#mobile-tour-intro h3{font-size:24px;margin-top:15px}.mobile-tour-symbol{display:none}#mobile-tour-intro p{font-size:13px}.mobile-welcome h1>span{margin-left:1px}}
@media(prefers-reduced-motion:reduce){#mobile-ui *,#mobile-ui *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
