/* A shared, non-emissive finish for the cabin's controls. Geometry and hit
   targets remain owned by the scene and responsive layout styles. */
body[data-startup]{--control-surface:#202321;--control-edge:#aaa79950;--control-text:#e6e3d8;--control-muted:#bebeb2;--control-mark:#c1b28f}
.top{background:linear-gradient(#151918dc,#15191870 68%,transparent)}
.top nav{gap:20px}
.top nav a{position:relative;border-radius:0;color:var(--control-text);font-size:13px;letter-spacing:.025em}
.top nav a::after{content:"";position:absolute;bottom:5px;left:10px;right:10px;height:1px;background:transparent}
.top nav a:hover,.top nav a[aria-current="page"]{background:transparent;color:#fff7e7}
.top nav a:hover::after,.top nav a[aria-current="page"]::after{background:var(--control-mark)}
.header-tools .original{border-bottom-color:#aaa79940;color:var(--control-muted)}
/* Recessed selector and lower control rail, rather than floating pills. */
.vista-picker,.view-controls,.ready .view-controls,#arm-demo-controls,.entry-controls{border:1px solid var(--control-edge);border-radius:2px;background:linear-gradient(#292d29f5,#1c201df5);box-shadow:inset 0 1px #ddd7c00c,0 2px 4px #0002;backdrop-filter:none;color:var(--control-text)}
.vista-label{color:var(--control-muted);font-size:10px;letter-spacing:.035em}
#vista-select{border-radius:0;color:var(--control-text)}
.vista-options{border-radius:2px;background:#222622;border-color:var(--control-edge);box-shadow:0 4px 10px #0004;padding:3px}
.vista-options button{border-radius:0;color:var(--control-text)}
.vista-options button.is-active,.vista-options button:hover{background:#d0c6a916}
.vista-options button[aria-selected="true"]{color:#eee3c9;box-shadow:inset 2px 0 var(--control-mark)}
.vista-options button[aria-selected="true"]:after{color:var(--control-mark)}
.view-controls,.ready .view-controls{padding:3px;gap:0}
.view-controls button,.view-controls #motion,.view-controls #entry-replay,.view-controls #recenter{border:0;border-radius:0;background:transparent;color:var(--control-text);box-shadow:none}
.view-controls button+button{border-left:1px solid #aaa79930!important}
.view-controls button:hover,.view-controls button.active:hover{background:#d0c6a916;color:#fff7e7}
.view-controls button.active,.view-controls button[aria-pressed="true"]{background:#d0c6a90b;color:#eee3c9;box-shadow:inset 0 -1px var(--control-mark)}
/* Object labels use the same matte finish as the screen bezels. */
.hotspots button,.ready .hotspots button{border-radius:2px;border:1px solid #aba99b55;background:#242824e8;color:var(--control-text);box-shadow:inset 2px 0 #b2aa9066,0 1px 3px #0003;letter-spacing:.01em}
.hotspots button span{color:#c5b995}
.hotspots button::after{background:#b5ad94a6}
.hotspots button:hover,.hotspots button:focus-visible{background:#333930f5;border-color:#c1b28f;box-shadow:inset 2px 0 var(--control-mark)}
/* Language remains small; a short engraved rule carries the active state. */
body[data-startup] .language-switch{border:0;border-radius:0;background:transparent;color:var(--control-muted);font-family:var(--ui-font)}
body[data-startup] .language-switch button{position:relative;border-radius:0;background:transparent;min-height:44px}
body[data-startup] .language-switch button+button{border-left:1px solid #aaa79930}
body[data-startup] .language-switch button[aria-pressed="true"]{background:transparent;color:#f1e9d5}
body[data-startup] .language-switch button[aria-pressed="true"]::after{content:"";position:absolute;bottom:5px;left:10px;right:10px;height:1px;background:var(--control-mark)}
body[data-startup] .language-switch button:hover{background:#b9b49f12}
body[data-startup] .language-dock:has(.language-switch){background:#202521ed;border:1px solid var(--control-edge);border-radius:2px}
#arm-demo-controls button,.entry-controls button{border-radius:2px;border-color:var(--control-edge);color:var(--control-text)}
#arm-demo-controls button:hover:not(:disabled),.entry-controls button:hover{background:#d0c6a916}
/* Keep focus explicit, with no perpetual glow or animated decoration. */
.top :focus-visible,.hotspots button:focus-visible,.view-controls button:focus-visible,#vista-select:focus-visible,.vista-options button:focus-visible,#arm-demo-controls button:focus-visible,body[data-startup] .language-switch button:focus-visible{outline:2px solid #d5c59e;outline-offset:3px}
@media(max-width:699px),(max-width:950px) and (max-height:520px){.top nav{gap:2px}.top nav a{font-size:13px}.hotspots button,.ready .hotspots button{min-height:44px;border-radius:2px}.view-controls,.ready .view-controls{padding:3px}.top nav a::after{left:18%;right:18%}}
@media(max-width:699px),(max-width:950px) and (max-height:520px){.view-controls button,.view-controls #motion,.view-controls #entry-replay,.view-controls #recenter{white-space:normal;line-height:1.35;padding:7px 6px;overflow-wrap:normal}}
#sheet[data-object]:not([data-object=""]) .focus-toolbar button{background:#242824f5;border-color:var(--control-edge);border-radius:2px;color:var(--control-text)}
body[data-startup] .focus-toolbar .language-switch{background:#242824f5}
body[data-startup] .sheet-head .language-switch,body[data-startup] .image-head .language-switch{color:#59594e}
body[data-startup] .sheet-head .language-switch button[aria-pressed="true"],body[data-startup] .image-head .language-switch button[aria-pressed="true"]{color:#302f27}
/* Object-first navigation: the directory is an explicit accessible alternative. */
.top{height:88px;pointer-events:none;background:linear-gradient(#11161190,transparent)}
.top .site-name,.top .header-tools{pointer-events:auto}
#cabin-menu{position:relative;font:12px var(--ui-font);color:#d6d4c9}
#cabin-menu>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;list-style:none;padding:0 8px}
#cabin-menu>summary::-webkit-details-marker{display:none}
#cabin-menu>summary::before{content:'≡';font-size:18px;color:#b7b49f}
.cabin-menu-panel{position:absolute;right:0;top:100%;width:290px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 110px);overflow:auto;padding:14px;background:#202622f7;border:1px solid #a59e864f;border-radius:2px;box-shadow:0 4px 16px #0004}
#cabin-menu:not([open])>.cabin-menu-panel{display:none}
#cabin-menu nav{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin:0;width:auto}
#cabin-menu nav a{min-height:44px;display:flex;align-items:center;padding:0 10px;font-size:13px}
#cabin-menu .vista-control{position:static;text-align:left;margin:12px 0}
#cabin-menu .vista-picker{display:flex;width:100%}
#cabin-menu #vista-select{flex:1}
#cabin-menu .view-controls{display:flex;flex-direction:column;width:100%;margin:10px 0;align-items:stretch}
#cabin-menu .view-controls button{flex:none;min-height:44px;white-space:normal;border:0!important;text-align:left;padding:8px 12px}
#cabin-menu .original{display:flex;font-size:12px;width:fit-content}
#cabin-menu [data-arm-shortcut]{min-height:44px;background:transparent;color:inherit;border:0;padding:8px 10px;cursor:pointer}
.bottom{pointer-events:none}.bottom .hint{position:static!important;margin-left:auto}
.hotspots button,.ready .hotspots button{transform:translate(-50%,-50%);width:44px;height:44px;min-width:44px;min-height:44px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;font-size:0;overflow:visible}
.hotspots button span,.hotspots button small{display:none!important}
.hotspots button::after{content:'';position:absolute;left:18px;top:18px;bottom:auto;width:8px;height:8px;border:1px solid #d3c9aa99;border-radius:50%;background:#20282370;opacity:0;box-shadow:none}
.hotspots button::before,.ready .hotspots button::before{content:attr(data-label);position:absolute;left:50%;top:35px;transform:translateX(-50%);width:max-content;max-width:130px;padding:3px 6px;font:12px/1.4 var(--ui-font);color:#e9e4d5;background:#1e251fdb;border:0;border-radius:1px;opacity:0;pointer-events:none}
.hotspots button:hover,.hotspots button:focus-visible{background:transparent;border:0;box-shadow:none}
.hotspots button.object-hover::after,.hotspots button:focus-visible::after,.hotspots button:hover::after{opacity:1;box-shadow:0 0 9px #d3c9aa33}
.hotspots button.object-hover::before,.hotspots button:focus-visible::before,.hotspots button:hover::before{opacity:1}
#scene-language{position:absolute;left:0;top:0;width:100px;height:44px;z-index:4;transform-origin:0 0;visibility:hidden}
#scene-language .language-switch{width:100%;height:100%;background:#202621;color:#ddd7c8}
#scene-language .language-switch button{width:50%;height:44px;min-width:0;font-size:15px}
body[data-startup] .language-dock:has(.language-switch){background:#202521ed}
@media(hover:none),(pointer:coarse){.hotspots button::after{opacity:.8}.hotspots button::before,.ready .hotspots button::before{opacity:1;font-size:11px}}
@media(max-width:699px){.top{height:76px;display:flex;align-items:center;padding:8px 12px;gap:8px}.header-tools{gap:4px}.brand{font-size:22px}#cabin-menu>summary{font-size:11px;padding:0 4px}.hotspots button::after{opacity:.8}.hotspots button::before,.ready .hotspots button::before{opacity:1;font-size:11px}.bottom .hint{font-size:10px;max-width:none;margin:auto}.cabin-menu-panel{position:fixed;right:12px;top:72px}}
body.no-webgl [data-arm-shortcut]{display:none}
.bottom .hint{display:block!important}
body.no-webgl #scene-language{display:none}
@media(max-width:699px){.header-tools .language-switch button{min-width:44px}}
@media(max-width:359px){#cabin-menu>summary{font-size:0;width:44px;justify-content:center}}
/* The language lettering belongs to the two mesh faces, not a CSS card. */
#language-flip{display:block;width:100%;height:100%;min-width:44px;min-height:44px;padding:0;background:transparent;border:0;border-radius:1px;cursor:pointer}
#language-flip:focus-visible{outline:2px solid #d5c59e;outline-offset:3px}
body[data-scene-language="visible"] #language-home{display:none}
body.no-webgl #language-home{display:inline-flex}
