/* Small true-alpha cutouts inside unchanged invisible 44px keyboard/touch targets. */
.sanctuary-view{--san-prompt-focus:#f9e3ae}
.sanctuary-view[data-scene=cyber]{--san-prompt-focus:#efbce6}
.sanctuary-view[data-scene=agandar]{--san-prompt-focus:#edb3ab}
.sanctuary-view[data-scene=auriela]{--san-prompt-focus:#ffe4ce}
.sanctuary-view[data-scene=solomon]{--san-prompt-focus:#ffe4b1}
.sanctuary-view[data-scene=youth]{--san-prompt-focus:#fff3a8}
.sanctuary-view :is(.sanctuary-hotspot,.sanctuary-window-spot){box-sizing:border-box;width:44px;height:44px;min-width:44px;min-height:44px;padding:8px;border:0;background:transparent;box-shadow:none;touch-action:manipulation}
.sanctuary-view :is(.sanctuary-hotspot-dot,.sanctuary-window-mark){position:relative;box-sizing:border-box;width:28px;height:28px;border:0;border-radius:0;background:transparent;color:var(--san-prompt-focus);box-shadow:none;pointer-events:none;transition:filter .16s,transform .16s}
.sanctuary-prompt-art{display:block;width:28px;height:28px;object-fit:contain;pointer-events:none;user-select:none;filter:drop-shadow(0 1px 2px #000a)}
.sanctuary-prompt-fallback{display:grid;place-items:center;position:absolute;inset:0;min-width:28px;font:700 8px/1 system-ui,sans-serif;letter-spacing:0;background:#17141fd9;color:#fff8e8;border:1px solid currentColor;border-radius:5px;padding:2px}
[data-prompt-loaded=true]>.sanctuary-prompt-fallback{display:none}
.sanctuary-view :is(.sanctuary-hotspot,.sanctuary-window-spot):is(:hover,:focus-visible) :is(.sanctuary-hotspot-dot,.sanctuary-window-mark){background:transparent;border:0;box-shadow:none;transform:scale(1.08);filter:drop-shadow(0 0 3px #ffeac760)}
.sanctuary-view :is(.sanctuary-hotspot,.sanctuary-window-spot):focus-visible{outline:2px solid var(--san-prompt-focus);outline-offset:-2px;border-radius:9px}
.sanctuary-view .sanctuary-window-spot:focus-visible{outline-color:var(--san-prompt-focus)!important}
.sanctuary-view :is(.sanctuary-hotspot-label,.sanctuary-window-label){background:var(--san-bg);color:var(--san-ink);border-color:var(--san-line);box-shadow:0 3px 12px #0004}
.sanctuary-view [data-prompt-align=start] :is(.sanctuary-hotspot-label,.sanctuary-window-label){left:0;transform:none;text-align:left}
.sanctuary-view [data-prompt-align=end] :is(.sanctuary-hotspot-label,.sanctuary-window-label){left:auto;right:0;transform:none;text-align:right}
.sanctuary-view:is([data-scene=agandar],[data-scene=solomon]) .sanctuary-backpack-button img{width:66px;height:66px;object-fit:contain;background:transparent;border:0;border-radius:0;filter:drop-shadow(0 2px 2px #0003)}
.sanctuary-dialog:is([data-scene=agandar],[data-scene=solomon]) .sanctuary-welcome>img{width:100px;height:100px;object-fit:contain;background:transparent;border:0;border-radius:0}
@media(max-width:740px){.sanctuary-view:is([data-scene=agandar],[data-scene=solomon]) .sanctuary-backpack-button img{width:48px;height:48px}}
@media(prefers-reduced-motion:reduce){.sanctuary-view :is(.sanctuary-hotspot-dot,.sanctuary-window-mark){transition:none;animation:none;transform:none!important}}
@media(forced-colors:active){.sanctuary-view[data-scene] :is(.sanctuary-hotspot,.sanctuary-window-spot){background:transparent;color:ButtonText;border:0;box-shadow:none}.sanctuary-prompt-art{display:none}.sanctuary-view .sanctuary-prompt-fallback{display:grid;background:ButtonFace;color:ButtonText;border-color:ButtonText;forced-color-adjust:none}.sanctuary-view :is(.sanctuary-hotspot,.sanctuary-window-spot):focus-visible{outline:2px solid Highlight!important}}

/* r41: room-object prompts appear only while highlighted. The transparent
   hit target and its accessible name remain available, including on touch. */
#sanctuary-view :is(.sanctuary-hotspot-dot,.sanctuary-window-mark){opacity:0!important;transition:opacity .16s,filter .16s,transform .16s}
#sanctuary-view :is(.sanctuary-hotspot,.sanctuary-window-spot):is(:hover,:focus-visible,:active,[data-object-highlighted="true"]) :is(.sanctuary-hotspot-dot,.sanctuary-window-mark){opacity:1!important}
#sanctuary-view .sanctuary-hotspot[data-object-highlighted="true"] .sanctuary-hotspot-label{opacity:1;visibility:visible}
@media(hover:none){#sanctuary-view :is(.sanctuary-hotspot,.sanctuary-window-spot):focus :is(.sanctuary-hotspot-dot,.sanctuary-window-mark){opacity:1!important}}
@media(prefers-reduced-motion:reduce){#sanctuary-view :is(.sanctuary-hotspot-dot,.sanctuary-window-mark){transition:none}}

/* r47: room-matched vector inlays, not glossy objects or a new HUD.
   The original target geometry and reveal rules above remain unchanged. */
#sanctuary-view [data-prompt-theme=default]{--san-prompt-ink47:#e7e3d7;--san-prompt-accent47:#cbb587;--san-prompt-fill47:#272924;--san-prompt-shadow47:#111410;}
#sanctuary-view[data-scene=default]{--san-prompt-focus:#e7e3d7}
#sanctuary-view [data-prompt-theme=cyber]{--san-prompt-ink47:#e7d7ed;--san-prompt-accent47:#cf91bc;--san-prompt-fill47:#261f2f;--san-prompt-shadow47:#13101c;}
#sanctuary-view[data-scene=cyber]{--san-prompt-focus:#e7d7ed}
#sanctuary-view [data-prompt-theme=agandar]{--san-prompt-ink47:#d8d7d4;--san-prompt-accent47:#c07972;--san-prompt-fill47:#222325;--san-prompt-shadow47:#0c0d10;}
#sanctuary-view[data-scene=agandar]{--san-prompt-focus:#d8d7d4}
#sanctuary-view [data-prompt-theme=auriela]{--san-prompt-ink47:#e6e1cd;--san-prompt-accent47:#aaba9b;--san-prompt-fill47:#2e342c;--san-prompt-shadow47:#151c14;}
#sanctuary-view[data-scene=auriela]{--san-prompt-focus:#e6e1cd}
#sanctuary-view [data-prompt-theme=solomon]{--san-prompt-ink47:#e7dfcf;--san-prompt-accent47:#bea686;--san-prompt-fill47:#342c25;--san-prompt-shadow47:#1a1511;}
#sanctuary-view[data-scene=solomon]{--san-prompt-focus:#e7dfcf}
#sanctuary-view [data-prompt-theme=youth]{--san-prompt-ink47:#f1e8ce;--san-prompt-accent47:#a9cbc6;--san-prompt-fill47:#39443f;--san-prompt-shadow47:#202a23;}
#sanctuary-view[data-scene=youth]{--san-prompt-focus:#f1e8ce}
#sanctuary-view[data-scene=chapel]{--san-prompt-focus:#e7e3d7}
#sanctuary-view .sanctuary-prompt-vector47{display:block;position:absolute;left:2px;top:2px;width:24px;height:24px;overflow:visible;opacity:.82;filter:none;pointer-events:none;user-select:none;fill:none;stroke-linecap:round;stroke-linejoin:round}
#sanctuary-view .sanctuary-prompt-vector47 path{fill:none}
#sanctuary-view .sanctuary-prompt-shadow47{stroke:var(--san-prompt-shadow47);stroke-width:3.3}
#sanctuary-view .sanctuary-prompt-ink47{stroke:var(--san-prompt-ink47);stroke-width:1.65}
#sanctuary-view .sanctuary-prompt-vector47 .sanctuary-prompt-body47{fill:var(--san-prompt-fill47)}
#sanctuary-view .sanctuary-prompt-ink47 .sanctuary-prompt-accent47{stroke:var(--san-prompt-accent47);stroke-width:1.35}
/* Replace only the legacy bell's decorative raster. Its button, hitbox,
   click handler, audio guards and cat-cue event all stay untouched. */
#sanctuary-view[data-scene=cyber] .azeroth-backpack-bell-r29 .azeroth-object-mark-r29[data-prompt-design=r47]{position:relative;box-sizing:border-box;width:28px;height:28px;border:0;border-radius:0;background:transparent;filter:none!important;pointer-events:none}
#sanctuary-view[data-scene=cyber] .azeroth-backpack-bell-r29 .azeroth-object-mark-r29[data-prompt-design=r47]::after{content:none!important}
#sanctuary-view[data-scene=cyber] .azeroth-backpack-bell-r29:is(:hover,:focus-visible,:active) .azeroth-object-mark-r29[data-prompt-design=r47]{opacity:1!important}
@media(hover:none){#sanctuary-view[data-scene=cyber] .azeroth-backpack-bell-r29:focus .azeroth-object-mark-r29[data-prompt-design=r47]{opacity:1!important}}
@media(forced-colors:active){
 #sanctuary-view .sanctuary-prompt-vector47{display:none!important}
 #sanctuary-view [data-prompt-design=r47]>.sanctuary-prompt-fallback{display:grid;background:ButtonFace;color:ButtonText;border-color:ButtonText;forced-color-adjust:none}
}

/* r47 user sizing/opacity refinement: only the visible glyph changes.
   Keep the 28px anchor and 44px targets. Normalize revealed marker opacity
   first, so legacy Azeroth styling cannot multiply the new translucency. */
#sanctuary-view[data-scene] :is(.sanctuary-hotspot,.sanctuary-window-spot):is(:hover,:focus-visible,:active,[data-object-highlighted="true"]) :is(.sanctuary-hotspot-dot,.sanctuary-window-mark)[data-prompt-design=r47]{opacity:1!important}
#sanctuary-view :is(.sanctuary-hotspot,.sanctuary-window-spot,.azeroth-backpack-bell-r29):hover .sanctuary-prompt-vector47{opacity:.9}
#sanctuary-view :is(.sanctuary-hotspot,.sanctuary-window-spot,.azeroth-backpack-bell-r29):is(:focus-visible,:active) .sanctuary-prompt-vector47{opacity:1}
@media(hover:none){
 #sanctuary-view[data-scene] :is(.sanctuary-hotspot,.sanctuary-window-spot):focus :is(.sanctuary-hotspot-dot,.sanctuary-window-mark)[data-prompt-design=r47]{opacity:1!important}
 #sanctuary-view :is(.sanctuary-hotspot,.sanctuary-window-spot,.azeroth-backpack-bell-r29):focus .sanctuary-prompt-vector47{opacity:1}
}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more),(forced-colors:active){#sanctuary-view .sanctuary-prompt-vector47{opacity:1!important}}

/* Touch has no hover. Do not leave a marker onscreen after the finger lifts,
   including browsers that retain :hover/:focus after tapping. Keyboard
   :focus-visible remains an explicit accessibility exception. */
@media(hover:none){#sanctuary-view[data-scene] :is(.sanctuary-hotspot,.sanctuary-window-spot,.azeroth-backpack-bell-r29):not(:active):not(:focus-visible) :is(.sanctuary-hotspot-dot,.sanctuary-window-mark,.azeroth-object-mark-r29)[data-prompt-design=r47]{opacity:0!important}}
