/* Layout ownership for both side compartments. Never covers or stretches art. */
.sanctuary-view[data-side-panels=true]{--san-left-width:202px;--san-right-width:0px}
.sanctuary-view[data-side-panels=true][data-library-dock-open=true]{--san-left-width:320px}
.sanctuary-view[data-side-panels=true][data-companion-dock-open=true]{--san-right-width:300px}
.sanctuary-view[data-side-panels=true] .sanctuary-frame{display:grid;grid-template-columns:var(--san-left-width) minmax(0,1fr) var(--san-right-width);grid-template-rows:minmax(0,1fr)}
.sanctuary-view[data-side-panels=true] .sanctuary-side-library{grid-column:1;grid-row:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--hud-bar);border-right:3px double var(--hud-edge);overflow:hidden;position:relative}
.sanctuary-view[data-side-panels=true] #sanctuary-side-companion-r27{grid-column:3;grid-row:1;min-width:0;min-height:0;max-height:100%;overflow:auto;border-left:3px double var(--hud-edge);background:var(--hud-bar);position:relative}
.sanctuary-view[data-side-panels=true] #sanctuary-side-companion-r27[hidden]{display:none!important}
.sanctuary-view[data-side-panels=true] .sanctuary-room-viewport{grid-column:2;grid-row:1;min-width:0;min-height:0}
.sanctuary-view[data-side-panels=true] .sanctuary-hud{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:18px;padding:20px 14px 15px;min-width:0;min-height:0;flex:none;border-bottom:1px solid var(--hud-edge)}
.sanctuary-view[data-side-panels=true] .sanctuary-heading{flex:none;min-width:0;padding-left:39px}
.sanctuary-view[data-side-panels=true] .sanctuary-heading h1{font-size:23px}
.sanctuary-view[data-side-panels=true] .sanctuary-heading p{font-size:8px;letter-spacing:.04em}
.sanctuary-view[data-side-panels=true] .sanctuary-hud-mark{width:29px}
.sanctuary-view[data-side-panels=true] .sanctuary-hud-actions{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;flex:none;gap:10px;min-width:0}
.sanctuary-view[data-side-panels=true] .sanctuary-select-label{flex:1 0 100%;width:100%}
.sanctuary-view[data-side-panels=true] .sanctuary-select-label select{width:100%;max-width:100%;font-size:11px}
.sanctuary-view[data-side-panels=true] .sanctuary-backpack-button{flex-basis:100%;justify-content:flex-start;gap:9px}
.sanctuary-view[data-side-panels=true] .sanctuary-backpack-button small{display:block;text-align:left}
/* The actual existing dialog is nonmodal here. No cloned forms or fake tabs. */
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true]{position:static;inset:auto;box-sizing:border-box;width:100%;max-width:100%;height:auto;min-height:0;max-height:none;flex:1;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:var(--san-bg);overflow:hidden}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true][hidden]{display:none}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true]:not([hidden]){display:flex;flex-direction:column}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-dialog-shell{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;flex:1}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-dialog-head{padding:10px 12px;gap:8px;flex:none;border-block:1px solid var(--hud-edge)}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-dialog-head h2{font-size:20px}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-dialog-head p{font-size:10px;line-height:1.4}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-backpack-body{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;overflow:hidden}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-tabs{display:flex;flex-flow:row nowrap;gap:4px;padding:5px 7px;flex:none;border-right:0;border-bottom:1px solid var(--san-line);overflow-x:auto;overscroll-behavior:contain;scrollbar-width:thin}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-tab{flex:none;min-width:76px;min-height:44px;padding:8px 12px;font-size:11px;white-space:nowrap}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-panel{flex:1;min-width:0;min-height:0;padding:16px 13px;overflow:auto;overscroll-behavior:contain;overflow-wrap:anywhere;scrollbar-width:thin}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-panel h3{font-size:22px}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] :is(.sanctuary-companion-grid,.sanctuary-metrics){grid-template-columns:1fr}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-data-row{flex-wrap:wrap;gap:9px;padding:12px 10px}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] :is(input,select,textarea){max-width:100%;min-width:0}
.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-dialog-close{min-height:44px;min-width:44px;flex:none}
/* Room-specific joinery divides art and controls, with no pretend scene fill. */
.sanctuary-view[data-side-panels=true][data-scene=default] .sanctuary-side-library{border-right:5px double #967342;box-shadow:inset 6px 0 #b4935a25}
.sanctuary-view[data-side-panels=true][data-scene=auriela] .sanctuary-side-library{border-right:4px double #ba8c98;box-shadow:inset 5px 0 #d8aeb829}
.sanctuary-view[data-side-panels=true][data-scene=youth] .sanctuary-side-library{border-right:3px solid #98ad79;box-shadow:inset -3px 0 #edf4ce}
.sanctuary-view[data-side-panels=true][data-scene=solomon] .sanctuary-side-library{border-right:5px double #b79c6b;box-shadow:inset -5px 0 #2c211a}
.sanctuary-view[data-side-panels=true][data-scene=agandar] .sanctuary-side-library{border-right:3px double #a85766;box-shadow:inset -4px 0 #0b1015,inset -5px 0 #72444e}
.sanctuary-view[data-side-panels=true][data-scene=cyber] .sanctuary-side-library{border-right:3px double #bf85b5;box-shadow:inset -3px 0 #221929,inset -4px 0 #8d648c}
@media(min-width:1100px) and (min-height:620px){
 .sanctuary-view[data-side-panels=true]{--san-room-span:min(100%,calc((100dvh - 34px) * var(--san-scene-aspect,1.5) + var(--san-left-width) + var(--san-right-width)));align-items:center}
 .sanctuary-view[data-side-panels=true] :is(.sanctuary-frame,.sanctuary-topline,.sanctuary-footer){width:var(--san-room-span)}
 .sanctuary-view[data-side-panels=true] .sanctuary-footer{justify-content:space-between}
}
/* One responsive lower drawer at a time, never a popup over the painting. */
@media(max-width:1099px),(max-height:619px){
 .sanctuary-view[data-side-panels=true] .sanctuary-frame{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);width:100%}
 .sanctuary-view[data-side-panels=true][data-library-dock-open=true] .sanctuary-frame,.sanctuary-view[data-side-panels=true][data-companion-dock-open=true] .sanctuary-frame{grid-template-rows:auto minmax(0,1fr) minmax(0,36dvh)}
 .sanctuary-view[data-side-panels=true] .sanctuary-side-library{display:contents}
 .sanctuary-view[data-side-panels=true] .sanctuary-hud{grid-row:1;grid-column:1;flex-direction:row;align-items:center;justify-content:space-between;padding:5px 8px;gap:8px;min-height:62px}
 .sanctuary-view[data-side-panels=true] .sanctuary-heading{padding-left:39px}
 .sanctuary-view[data-side-panels=true] .sanctuary-hud-actions{flex:1;justify-content:flex-end;flex-wrap:nowrap;gap:5px}
 .sanctuary-view[data-side-panels=true] .sanctuary-select-label{flex:0 1 190px;width:auto}
 .sanctuary-view[data-side-panels=true] .sanctuary-backpack-button{flex:none;gap:0}
 .sanctuary-view[data-side-panels=true] .sanctuary-backpack-button small{display:none}
 .sanctuary-view[data-side-panels=true] .sanctuary-room-viewport{grid-column:1;grid-row:2}
 .sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true]{grid-column:1;grid-row:3;height:100%;min-height:0;border-top:3px double var(--hud-edge)}
 .sanctuary-view[data-side-panels=true] #sanctuary-side-companion-r27{grid-column:1;grid-row:3;height:100%;min-height:0;border-left:0;border-top:3px double var(--hud-edge)}
 .sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-dialog-head{padding:3px 10px}
 .sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-dialog-head p{display:none}
 .sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true] .sanctuary-tabs{padding-block:2px}
}
@media(max-width:620px){.sanctuary-view[data-side-panels=true] .sanctuary-heading{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}.sanctuary-view[data-side-panels=true] .sanctuary-select-label{flex:1}}
@media(max-height:450px){.sanctuary-view[data-side-panels=true] .sanctuary-frame{grid-template-rows:auto minmax(0,1fr)}.sanctuary-view[data-side-panels=true][data-library-dock-open=true] .sanctuary-frame,.sanctuary-view[data-side-panels=true][data-companion-dock-open=true] .sanctuary-frame{grid-template-columns:minmax(0,1fr) minmax(250px,42%);grid-template-rows:auto minmax(0,1fr)}.sanctuary-view[data-side-panels=true] .sanctuary-hud{grid-column:1/-1;min-height:52px;padding-block:2px}.sanctuary-view[data-side-panels=true] #sanctuary-backpack-dock[data-docked=true],.sanctuary-view[data-side-panels=true] #sanctuary-side-companion-r27{grid-column:2;grid-row:2;border-top:0;border-left:2px solid var(--hud-edge)}}
@media(forced-colors:active){.sanctuary-view[data-side-panels=true] .sanctuary-side-library,.sanctuary-view[data-side-panels=true] #sanctuary-side-companion-r27{background:Canvas;border-color:CanvasText;box-shadow:none}}
/* Issue 29: Back belongs to the room's own control surface, never a second bar. */
.sanctuary-view[data-side-panels=true] .sanctuary-topline{display:none!important}
.sanctuary-view[data-side-panels=true] .sanctuary-hud>.sanctuary-return{color:var(--san-ink);align-self:flex-start;min-height:44px;padding:4px 8px;border:1px solid var(--san-line);border-radius:3px;background:var(--san-panel);font:600 12px/1.2 system-ui,sans-serif!important;gap:7px}
.sanctuary-view[data-side-panels=true] .sanctuary-hud>.sanctuary-return span:last-child{font:inherit}
.sanctuary-view[data-side-panels=true] .sanctuary-hud-actions>.sanctuary-small-link{display:flex;align-items:center;gap:8px;min-height:44px;min-width:44px;padding:6px;color:var(--san-ink);font:600 11px/1.2 system-ui,sans-serif;max-width:none;text-align:left}
.sanctuary-view[data-side-panels=true] .sanctuary-hud-actions>.sanctuary-small-link svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5}
.sanctuary-view[data-side-panels=true] .sanctuary-hud :is(.sanctuary-return,.sanctuary-small-link):focus-visible{outline:3px solid var(--san-accent);outline-offset:-3px}
@media(max-width:1099px),(max-height:619px){
 .sanctuary-view[data-side-panels=true] .sanctuary-hud>.sanctuary-return{align-self:center;flex:none;padding:4px 6px}
 .sanctuary-view[data-side-panels=true] .sanctuary-hud-actions>.sanctuary-small-link span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
}
@media(max-width:390px){.sanctuary-view[data-side-panels=true] .sanctuary-hud{gap:3px;padding-inline:4px}.sanctuary-view[data-side-panels=true] .sanctuary-hud-actions{gap:2px}.sanctuary-view[data-side-panels=true] .sanctuary-hud>.sanctuary-return{padding-inline:3px;font-size:10px!important}.sanctuary-view[data-side-panels=true] .sanctuary-backpack-button img{width:40px}.sanctuary-view[data-side-panels=true] .sanctuary-select-label select{padding-left:6px;padding-right:16px}}
@media(forced-colors:active){.sanctuary-view[data-side-panels=true] .sanctuary-hud>.sanctuary-return{color:ButtonText;background:ButtonFace;border-color:ButtonText}}
.sanctuary-side-material-mark{display:none;position:absolute;bottom:14px;right:14px;pointer-events:none;color:#efb6df;font:12px/1 system-ui,sans-serif;letter-spacing:3px;opacity:.65}
.sanctuary-view[data-scene=cyber][data-library-dock-open=false] .sanctuary-side-material-mark{display:block}
/* The close-up window occupies the center image compartment, so conversations
   remain beside it rather than slipping behind a full-frame overlay. */
.sanctuary-view[data-side-panels=true] .sanctuary-window-view{inset:0 var(--san-right-width) 0 var(--san-left-width);min-height:0;overflow:hidden}
.sanctuary-view[data-side-panels=true] .sanctuary-window-viewport{min-height:0}
@media(max-width:1099px),(max-height:619px){
 .sanctuary-side-material-mark{display:none!important}
 .sanctuary-view[data-side-panels=true] .sanctuary-window-view{grid-column:1;grid-row:2;position:relative;inset:auto;min-height:0;width:100%;height:100%}
 .sanctuary-view[data-side-panels=true] .sanctuary-window-head{padding:5px 8px;gap:5px;flex-wrap:wrap}
 .sanctuary-view[data-side-panels=true] .sanctuary-window-head h2{font-size:15px}
 .sanctuary-view[data-side-panels=true] .sanctuary-window-head p{display:none}
 .sanctuary-view[data-side-panels=true] .sanctuary-window-controls{width:auto;margin-left:auto}
 .sanctuary-view[data-side-panels=true] .sanctuary-window-foot{padding:5px 8px}
 .sanctuary-view[data-side-panels=true] .sanctuary-window-foot #sanctuary-window-help{display:none}
}
@media(forced-colors:active){.sanctuary-side-material-mark{display:none!important}}
/* Issue 017: edge-to-edge room, independent authored cabinet geometry per home. */
.sanctuary-view[data-immersive-hud=true]{--cabinet-fill:linear-gradient(100deg,#171713,#2d2920 48%,#12130f);--cabinet-edge:#807358;--cabinet-ink:#e8dec7;--san-left-width:174px;--san-right-width:168px;padding:0;gap:0;align-items:stretch;background:#141410}
.sanctuary-view[data-immersive-hud=true] :is(.sanctuary-frame,.sanctuary-footer){width:100%;max-width:none;border-radius:0}
.sanctuary-view[data-immersive-hud=true] .sanctuary-frame{border:0;grid-template-columns:var(--san-left-width) minmax(0,1fr) var(--san-right-width);grid-template-rows:minmax(0,1fr)}
.sanctuary-view[data-immersive-hud=true][data-library-dock-open=true]{--san-left-width:310px}
.sanctuary-view[data-immersive-hud=true][data-companion-dock-open=true]{--san-right-width:300px}
.sanctuary-room-runner{box-sizing:border-box;display:flex;align-items:center;gap:16px;min-height:72px;padding:9px 22px;flex:none;color:var(--cabinet-ink);background:var(--cabinet-fill);border-bottom:5px double var(--cabinet-edge);box-shadow:inset 0 2px #ffffff12,0 5px 18px #0006;z-index:5}
.sanctuary-room-runner .sanctuary-runner-brand{flex:1;min-width:0}.sanctuary-room-runner .sanctuary-heading{padding-left:40px!important}.sanctuary-room-runner .sanctuary-heading h1{font-size:23px!important}.sanctuary-room-runner .sanctuary-heading p{font-size:9px!important}
.sanctuary-room-runner .sanctuary-return{display:flex;gap:7px;align-items:center;min-height:44px;color:inherit;background:#0002;border:1px solid var(--cabinet-edge);padding:8px 14px;border-radius:3px;font:600 12px system-ui}
.sanctuary-room-runner .sanctuary-select-label{flex:0 1 220px!important;width:auto!important}.sanctuary-room-runner .sanctuary-select-label select{width:100%;max-width:100%;font-size:12px}
.sanctuary-view[data-immersive-hud=true] .sanctuary-side-library{background:var(--cabinet-fill);border-right:5px double var(--cabinet-edge);box-shadow:inset -8px 0 #0003,inset 5px 0 #ffffff07}
.sanctuary-view[data-immersive-hud=true] .sanctuary-hud{padding:26px 13px;gap:17px;background:transparent;overflow:visible;border:0;display:flex;flex-direction:column;align-items:stretch}
.sanctuary-cabinet-inscription{margin:0;color:var(--cabinet-ink);font:10px/1.5 Georgia,serif;letter-spacing:.16em;text-align:center;border-block:1px solid var(--cabinet-edge);padding:13px 0;text-shadow:0 2px #000}
.sanctuary-view[data-immersive-hud=true] .sanctuary-hud-actions{display:flex;flex-direction:column;align-items:stretch;gap:18px}.sanctuary-view[data-immersive-hud=true] .sanctuary-backpack-button{display:flex;flex-direction:column;align-items:center!important;gap:8px!important}.sanctuary-view[data-immersive-hud=true] .sanctuary-backpack-button img{width:116px;height:88px}.sanctuary-view[data-immersive-hud=true] .sanctuary-backpack-button small{display:block;text-align:center;font-size:11px}
.sanctuary-cabinet-control{min-height:44px;color:var(--cabinet-ink);background:linear-gradient(#ffffff08,#0002);border:1px solid var(--cabinet-edge);border-radius:3px;padding:10px 6px;font:11px/1.5 Georgia,serif;cursor:pointer}
.sanctuary-resource-cabinet{grid-column:3;grid-row:1;box-sizing:border-box;position:relative;display:flex;flex-direction:column;padding:25px 12px 15px;overflow:auto;min-height:0;background:var(--cabinet-fill);border-left:5px double var(--cabinet-edge);color:var(--cabinet-ink);box-shadow:inset 7px 0 #0004,inset -5px 0 #ffffff08}
.sanctuary-resource-cabinet h2{font:19px/1.3 Georgia,serif;text-align:center;margin:0 0 7px}.sanctuary-resource-cabinet>p{font:italic 11px Georgia,serif;text-align:center;margin:0 0 26px;color:inherit;opacity:.8}
.sanctuary-resource-books{display:flex;flex-direction:column;gap:18px}.sanctuary-resource-book{position:relative;display:flex;align-items:center;min-height:59px;padding:9px 9px 9px 17px;border:1px solid #a38b59;border-left:7px double #a38b59;border-radius:3px 8px 8px 3px;color:#eee4c9;background:linear-gradient(90deg,#19170e,#383022 16%,#292317 80%,#14130f);box-shadow:0 7px 0 -3px #795a39,0 11px 6px -3px #0009,inset -4px 0 #cfba8720;text-decoration:none;font:12px/1.5 Georgia,serif;text-align:left;cursor:pointer;transition:transform .25s,filter .25s}
.sanctuary-resource-book:nth-child(2){background:linear-gradient(90deg,#141c1c,#283a34,#162722)}.sanctuary-resource-book:nth-child(3){background:linear-gradient(90deg,#2a1715,#4a2a24,#291b18)}.sanctuary-resource-book:hover{transform:translateX(-3px);filter:brightness(1.18)}.sanctuary-cabinet-emblem{text-align:center;font-size:36px;margin-top:auto;padding-top:30px;opacity:.45}
.sanctuary-view[data-immersive-hud=true][data-companion-dock-open=true] .sanctuary-resource-cabinet{display:none}.sanctuary-view[data-immersive-hud=true] .sanctuary-window-view{inset:0 var(--san-right-width) 0 var(--san-left-width)}
.sanctuary-view[data-immersive-hud=true] .sanctuary-footer{padding:5px 12px;margin:0;box-sizing:border-box;background:var(--cabinet-fill);color:var(--cabinet-ink);border-top:1px solid var(--cabinet-edge)}
/* Snow lodge: deep walnut marquetry, inset brass labels, beveled joinery. */
.sanctuary-view[data-immersive-hud=true][data-scene=solomon]{--cabinet-fill:repeating-linear-gradient(2deg,#40251833 0 1px,#0000 2px 7px),linear-gradient(92deg,#24160f,#583721 45%,#352012 87%,#1e130d);--cabinet-edge:#ad8950;--cabinet-ink:#f1dfb5}
.sanctuary-view[data-scene=solomon] .sanctuary-room-runner{border-bottom:8px ridge #795132}.sanctuary-view[data-scene=solomon] .sanctuary-cabinet-inscription{border:4px double #9f7e47;background:#251b10;box-shadow:inset 0 3px 9px #0009;padding:17px 4px}.sanctuary-view[data-scene=solomon] .sanctuary-resource-cabinet{border-width:8px;border-style:ridge;border-color:#795132}.sanctuary-view[data-scene=solomon] .sanctuary-cabinet-control{border:3px ridge #81603b;background:linear-gradient(#5b3a23,#392215);text-shadow:0 2px #180f09}
/* Chapel: carved pointed archivolt and pale stone book niches. */
.sanctuary-view[data-immersive-hud=true][data-scene=chapel]{--cabinet-fill:linear-gradient(120deg,#282924,#494637 55%,#242620);--cabinet-edge:#aaa07f;--cabinet-ink:#e9e3cc}.sanctuary-view[data-scene=chapel] .sanctuary-resource-cabinet{border-top:7px double #aaa07f;border-radius:70px 70px 0 0;padding-top:42px}.sanctuary-view[data-scene=chapel] .sanctuary-cabinet-inscription{border-radius:60px 60px 0 0;border:4px double #aaa07f;padding-top:30px}.sanctuary-view[data-scene=chapel] .sanctuary-room-runner{border-bottom:7px double #aaa07f}
/* Youth: soft painted timber, rounded toy-chest cubbies and scalloped crest. */
.sanctuary-view[data-immersive-hud=true][data-scene=youth]{--cabinet-fill:linear-gradient(100deg,#b7c699,#e3e6be,#b9c99d);--cabinet-edge:#647e56;--cabinet-ink:#263d29}.sanctuary-view[data-scene=youth] .sanctuary-room-runner{border-bottom:6px solid #759064;border-radius:0 0 24px 24px}.sanctuary-view[data-scene=youth] .sanctuary-cabinet-control{border:2px solid #7c9767;border-radius:18px;background:#f1edd1}.sanctuary-view[data-scene=youth] .sanctuary-resource-book{border-radius:12px;box-shadow:0 5px #83925c;color:#29402d;background:#ebe4bc;border-color:#8c9b63}.sanctuary-view[data-scene=youth] .sanctuary-cabinet-inscription{text-shadow:none;border:2px dashed #7d9364;border-radius:22px}
/* Auriela: curved ivory floral cabinet with rose-brass fittings. */
.sanctuary-view[data-immersive-hud=true][data-scene=auriela]{--cabinet-fill:radial-gradient(ellipse at 10% 20%,#b6838133,transparent 55%),linear-gradient(90deg,#453638,#675253,#3b3035);--cabinet-edge:#bc9493;--cabinet-ink:#f5dfd9}.sanctuary-view[data-scene=auriela] .sanctuary-resource-cabinet{border-radius:55px 0 0 0;border-left:5px double #bc9493;padding-top:44px}.sanctuary-view[data-scene=auriela] .sanctuary-cabinet-control{border-radius:20px 6px 20px 6px;border:2px solid #a78080}.sanctuary-view[data-scene=auriela] .sanctuary-cabinet-inscription{border-radius:50%;padding:25px 6px;border:3px double #bc9493}
/* Azeroth: stepped lacquer cabinet, brushed rose-metal rails and inset screens. */
.sanctuary-view[data-immersive-hud=true][data-scene=cyber]{--cabinet-fill:repeating-linear-gradient(90deg,#0000 0 28px,#a2729414 29px 30px),linear-gradient(#24202b,#15131e);--cabinet-edge:#956d94;--cabinet-ink:#ead9ed}.sanctuary-view[data-scene=cyber] .sanctuary-resource-cabinet{border-left:8px solid #554457;clip-path:polygon(10px 0,100% 0,100% 100%,0 100%,0 20px)}.sanctuary-view[data-scene=cyber] .sanctuary-room-runner{border-bottom:3px solid #956d94;box-shadow:inset 0 -7px #18131f}.sanctuary-view[data-scene=cyber] .sanctuary-cabinet-control{border-radius:0;border-left:4px solid #b586ac}
/* Agandar: dark Gothic metal tracery, angular bronze archive doors. */
.sanctuary-view[data-immersive-hud=true][data-scene=agandar]{--cabinet-fill:repeating-linear-gradient(135deg,#8b765510 0 1px,transparent 1px 18px),linear-gradient(95deg,#151b1f,#293036,#12171b);--cabinet-edge:#79775e;--cabinet-ink:#d9ddc9}.sanctuary-view[data-scene=agandar] .sanctuary-cabinet-inscription{clip-path:polygon(12% 0,88% 0,100% 22%,100% 80%,88% 100%,12% 100%,0 80%,0 22%);border:3px double #79775e;padding:24px 8px;background:#10181b}.sanctuary-view[data-scene=agandar] .sanctuary-resource-cabinet{border-top:8px double #79775e;border-left:7px double #79775e}.sanctuary-view[data-scene=agandar] .sanctuary-resource-book{border-radius:0 13px 0 0;background:linear-gradient(100deg,#122025,#283d40,#16252a);border-color:#7c7b5d}.sanctuary-view[data-scene=agandar] .sanctuary-room-runner{border-bottom:7px double #79775e}
@keyframes sanctuary-duffle-open{0%{transform:perspective(400px) rotateX(0) scale(1)}45%{transform:perspective(400px) rotateX(-18deg) scale(1.1);filter:brightness(1.2)}100%{transform:none}}
.sanctuary-bag-opening #sanctuary-backpack-art{animation:sanctuary-duffle-open .75s ease-out}.sanctuary-view[data-immersive-hud=true] :is(button,a,select):focus-visible{outline:3px solid #e9bf75;outline-offset:3px}
@media(max-width:1099px),(max-height:619px){
.sanctuary-view[data-immersive-hud=true]{--san-left-width:0px;--san-right-width:0px}.sanctuary-view[data-immersive-hud=true] .sanctuary-frame{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}.sanctuary-view[data-immersive-hud=true] .sanctuary-side-library{display:contents}.sanctuary-view[data-immersive-hud=true] .sanctuary-hud{grid-column:1;grid-row:1;flex-direction:row;align-items:center;padding:4px 8px;gap:8px;min-height:54px;overflow:auto;background:var(--cabinet-fill)}.sanctuary-view[data-immersive-hud=true] .sanctuary-hud-actions{flex-direction:row;flex:none;gap:8px}.sanctuary-view[data-immersive-hud=true] .sanctuary-backpack-button{flex-direction:row}.sanctuary-view[data-immersive-hud=true] .sanctuary-backpack-button img{width:46px;height:44px}.sanctuary-view[data-immersive-hud=true] .sanctuary-backpack-button small,.sanctuary-view[data-immersive-hud=true] .sanctuary-cabinet-inscription{display:none}.sanctuary-cabinet-control{flex:none;font-size:10px;padding:5px 8px}.sanctuary-view[data-immersive-hud=true] .sanctuary-room-viewport{grid-row:2}.sanctuary-resource-cabinet{grid-row:3;grid-column:1;border:0!important;border-top:3px double var(--cabinet-edge)!important;border-radius:0!important;padding:6px 8px!important;clip-path:none!important}.sanctuary-resource-cabinet>h2,.sanctuary-resource-cabinet>p,.sanctuary-cabinet-emblem{display:none}.sanctuary-resource-books{flex-direction:row;gap:8px}.sanctuary-resource-book{flex:1;min-width:0;min-height:44px;box-shadow:none;font-size:10px;padding:5px 7px;border-left-width:3px}.sanctuary-room-runner{min-height:60px;padding:5px 8px;gap:8px}.sanctuary-room-runner .sanctuary-runner-brand{display:none}.sanctuary-room-runner .sanctuary-select-label{flex:1!important}.sanctuary-view[data-immersive-hud=true][data-library-dock-open=true] .sanctuary-frame,.sanctuary-view[data-immersive-hud=true][data-companion-dock-open=true] .sanctuary-frame{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(80px,1fr) minmax(0,40dvh)}.sanctuary-view[data-immersive-hud=true][data-library-dock-open=true] .sanctuary-resource-cabinet{display:none}.sanctuary-view[data-immersive-hud=true] #sanctuary-backpack-dock[data-docked=true],.sanctuary-view[data-immersive-hud=true] #sanctuary-side-companion-r27{grid-row:3;grid-column:1}.sanctuary-view[data-immersive-hud=true] .sanctuary-window-view{position:relative;grid-row:2;grid-column:1;inset:auto}.sanctuary-view[data-immersive-hud=true] .sanctuary-footer{display:none}
}
@media(prefers-reduced-motion:reduce){.sanctuary-bag-opening img{animation:none}.sanctuary-resource-book{transition:none}}
@media(forced-colors:active){.sanctuary-view[data-immersive-hud=true]{--cabinet-fill:Canvas;--cabinet-ink:CanvasText;--cabinet-edge:CanvasText}.sanctuary-resource-book,.sanctuary-cabinet-control{background:ButtonFace!important;color:ButtonText!important;box-shadow:none!important}.sanctuary-cabinet-inscription{clip-path:none!important}}
/* The painting supplies the objects; discover actions by touch, hover, or focus. */
.sanctuary-view[data-immersive-hud=true] .sanctuary-hotspot:not([data-hotspot=bookshelf]){background:transparent!important;box-shadow:none!important;border-color:transparent!important;min-width:52px;min-height:52px}
.sanctuary-view[data-immersive-hud=true] .sanctuary-hotspot:focus-visible{outline:2px solid #f0d39b!important;outline-offset:4px}.sanctuary-view[data-immersive-hud=true] .sanctuary-hotspot:is(:hover,:focus-visible) .sanctuary-hotspot-label{opacity:1;visibility:visible}
/* Room light response: low-amplitude, slow faulty-lamp breathing, never a strobe. */
.sanctuary-view[data-scene=agandar][data-hud-motion=true] .sanctuary-scene-image{animation:sanctuary-agandar-light-response 19s ease-in-out infinite}
@keyframes sanctuary-agandar-light-response{0%,65%,100%{filter:brightness(1)}69%{filter:brightness(.94)}74%{filter:brightness(1.035)}82%{filter:brightness(.97)}90%{filter:brightness(1)}}
@media(prefers-reduced-motion:reduce),(forced-colors:active),(prefers-contrast:more){.sanctuary-view[data-scene=agandar] .sanctuary-scene-image{animation:none!important;filter:none!important}}
.sanctuary-view[data-immersive-hud=true] .sanctuary-backpack-button{position:relative}.sanctuary-view[data-immersive-hud=true] .sanctuary-duffle-open-art{display:none;pointer-events:none;position:absolute;top:0;left:50%;transform:translateX(-50%);opacity:0;transition:opacity .42s ease-out}.sanctuary-view[data-immersive-hud=true][data-scene=solomon] .sanctuary-duffle-open-art{display:block}.sanctuary-view[data-scene=solomon] #sanctuary-backpack-art{transition:opacity .3s ease-out}.sanctuary-view[data-scene=solomon][data-library-dock-open=true] .sanctuary-duffle-open-art{opacity:1}.sanctuary-view[data-scene=solomon][data-library-dock-open=true] #sanctuary-backpack-art{opacity:0}
@media(prefers-reduced-motion:reduce){.sanctuary-view .sanctuary-duffle-open-art,.sanctuary-view #sanctuary-backpack-art{transition:none!important}}
.sanctuary-view .sanctuary-resource-book[hidden]{display:none!important}
/* v6 uses localized emission/spill assets; the whole painting never flashes. */
.sanctuary-view[data-scene=agandar][data-hud-motion=true] .sanctuary-scene-image{animation:none}
.sanctuary-authored-room-layers [data-room-layer=agandar-emission]{opacity:.06}.sanctuary-authored-room-layers [data-room-layer=agandar-spill]{opacity:.09}.sanctuary-authored-room-layers [data-room-layer=agandar-eyes]{opacity:.1}
.sanctuary-view[data-hud-motion=true] [data-room-layer=agandar-emission]{animation:sanctuary-practical-emission 19s ease-in-out infinite}.sanctuary-view[data-hud-motion=true] [data-room-layer=agandar-spill]{animation:sanctuary-practical-spill 19s ease-in-out infinite}.sanctuary-view[data-hud-motion=true] [data-room-layer=agandar-eyes]{animation:sanctuary-mask-led 13s ease-in-out infinite}
@keyframes sanctuary-practical-emission{0%,65%,100%{opacity:.08}69%{opacity:0}74%{opacity:.14}82%{opacity:.02}90%{opacity:.08}}@keyframes sanctuary-practical-spill{0%,65%,100%{opacity:.12}69%{opacity:0}74%{opacity:.25}82%{opacity:.03}90%{opacity:.12}}@keyframes sanctuary-mask-led{0%,72%,100%{opacity:.06}78%{opacity:.22}85%{opacity:.01}91%{opacity:.1}}
.sanctuary-agandar-object{display:none;position:absolute;z-index:5;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;cursor:pointer}.sanctuary-view[data-scene=agandar] .sanctuary-agandar-object{display:block}.sanctuary-agandar-object span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#12191ee8;color:#ede5d1;font:11px/1.4 system-ui;padding:7px 10px;border:1px solid #918365;white-space:nowrap;opacity:0;pointer-events:none}.sanctuary-agandar-object:is(:hover,:focus-visible) span{opacity:1}.sanctuary-agandar-object:focus-visible{outline:2px solid #dcc895;outline-offset:-2px}
@media(prefers-reduced-motion:reduce),(forced-colors:active),(prefers-contrast:more){.sanctuary-view [data-room-layer]{animation:none!important}}
#sanctuary-scene-choice[data-enhanced=true] select{display:none!important}.sanctuary-home-toggle{box-sizing:border-box;width:100%;min-height:44px;display:block;border:1px solid var(--cabinet-edge);border-radius:4px;background:#100f0d66;color:var(--cabinet-ink);font:12px/1.4 system-ui;padding:9px 12px;text-align:left;cursor:pointer}.sanctuary-home-menu{position:absolute;z-index:100;right:110px;top:72px;width:min(280px,calc(100vw - 24px));max-height:calc(100dvh - 90px);padding:8px;overflow:auto;border:1px solid var(--cabinet-edge);border-radius:7px;background:var(--cabinet-fill);color:var(--cabinet-ink);box-shadow:0 14px 35px #0009}.sanctuary-home-menu[hidden]{display:none!important}.sanctuary-home-menu button{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:10px 12px;text-align:left;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;font:13px system-ui;cursor:pointer}.sanctuary-home-menu button[aria-checked=true]{border-color:var(--cabinet-edge);background:#ffffff0d}.sanctuary-home-menu button[data-locked=true]{opacity:.45;cursor:default}.sanctuary-home-menu .hub-theme-check{margin-left:auto}.sanctuary-home-menu .hub-theme-icon{width:22px;text-align:center}.sanctuary-home-menu button:hover{background:#ffffff0d}
@media(max-width:1099px),(max-height:619px){.sanctuary-home-menu{top:60px;right:12px;max-height:calc(100dvh - 76px)}}
@media(forced-colors:active){.sanctuary-home-menu,.sanctuary-home-toggle{background:Canvas;color:CanvasText;border-color:CanvasText}.sanctuary-home-menu button[aria-checked=true]{outline:1px solid Highlight}}
.sanctuary-authored-room-layers [data-room-layer=agandar-dimming]{opacity:0}.sanctuary-view[data-hud-motion=true] [data-room-layer=agandar-dimming]{animation:sanctuary-practical-dip 19s ease-in-out infinite}@keyframes sanctuary-practical-dip{0%,65%,100%{opacity:0}69%{opacity:.18}74%{opacity:0}82%{opacity:.09}90%{opacity:0}}
/* Electronic LED idle blink, not biological eyelids. A brief local dim once per 13s. */
.sanctuary-authored-room-layers [data-room-layer=agandar-eye-shutter]{filter:brightness(0);opacity:0}.sanctuary-view[data-hud-motion=true] [data-room-layer=agandar-eye-shutter]{animation:sanctuary-mask-led-blink 13s ease-in-out infinite}@keyframes sanctuary-mask-led-blink{0%,91%,95%,100%{opacity:0}92.4%{opacity:.8}93.4%{opacity:.2}}
.sanctuary-azeroth-authentic-screen{position:absolute;z-index:4;left:0;top:0;width:280px!important;height:280px!important;max-width:none!important;max-height:none!important;transform-origin:0 0;pointer-events:none;object-fit:contain;opacity:.86;filter:brightness(.8);border:0}.sanctuary-azeroth-authentic-screen[hidden]{display:none!important}.sanctuary-scene[data-lamp=dim] .sanctuary-azeroth-authentic-screen{opacity:.72;filter:brightness(.7)}
/* Localized rose-neon reflection breathes at fixtures and floor, not across darkness. */
.sanctuary-azeroth-neon-spill{display:none;position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.025;background:radial-gradient(ellipse 14% 9% at 9% 18%,#f370b0,transparent 90%),radial-gradient(ellipse 15% 11% at 91% 49%,#e7489a,transparent 95%),radial-gradient(ellipse 11% 7% at 79% 76%,#df438f,transparent 95%)}.sanctuary-view[data-scene=cyber] .sanctuary-azeroth-neon-spill{display:block}.sanctuary-view[data-scene=cyber][data-hud-motion=true] .sanctuary-azeroth-neon-spill{animation:sanctuary-rose-reflection 23s ease-in-out infinite}@keyframes sanctuary-rose-reflection{0%,100%{opacity:.018}38%{opacity:.065}67%{opacity:.032}}
@media(prefers-reduced-motion:reduce),(forced-colors:active),(prefers-contrast:more){.sanctuary-view .sanctuary-azeroth-neon-spill{animation:none!important;opacity:0}}
/* Crops the original lower-left stitched cat in CSS: no redraw or substituted face. */
.sanctuary-azeroth-authentic-screen{overflow:hidden}.sanctuary-azeroth-authentic-screen>img{position:absolute;left:-98px;top:-952px;width:1254px!important;height:1254px!important;max-width:none!important;max-height:none!important;object-fit:fill}
