/* Local authored-image masks; no global room tint or replacement artwork. */
.azeroth-candles-r29{position:absolute;inset:0;z-index:7;pointer-events:none}
.azeroth-candles-r29[hidden],.azeroth-candles-r29 img[hidden],.azeroth-object-r29[hidden]{display:none!important}
.azeroth-candles-r29>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}
.azeroth-candle-glow-r32{position:absolute;inset:0;pointer-events:none}
.azeroth-candle-glow-r32[hidden]{display:none!important}
.azeroth-object-r29{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:#fff1dc;cursor:pointer;touch-action:manipulation;pointer-events:auto;z-index:8;display:grid;place-items:center}
.azeroth-object-mark-r29{display:grid;place-items:center;width:18px;height:18px;border:1px solid #ffe8cc90;border-radius:50%;background:#25151ad9;font:14px/1 system-ui,sans-serif;opacity:0;transition:opacity .15s}
.azeroth-object-r29:is(:hover,:focus-visible) .azeroth-object-mark-r29{opacity:1}
.azeroth-object-r29:focus-visible{outline:3px solid #ffc99d!important;outline-offset:2px}
.azeroth-backpack-bell-r29{z-index:8}
#sanctuary-view[data-window-open=true] .sanctuary-scene .azeroth-object-r29{pointer-events:none}
@media(prefers-reduced-motion:reduce){.azeroth-object-mark-r29{transition:none}}
@media(forced-colors:active){.azeroth-object-mark-r29{border-color:ButtonText;background:Canvas;color:ButtonText}}

/* Review 4: quiet scene, native click/focus targets remain present. */
#sanctuary-view[data-scene=cyber] :is(.sanctuary-hotspot,.sanctuary-window-spot,.azeroth-object-r29,.sanctuary-window-target,.sanctuary-lamp-target){cursor:pointer}
#sanctuary-view[data-scene=cyber] :is(.sanctuary-hotspot-dot,.sanctuary-window-mark,.azeroth-object-mark-r29){opacity:0!important;transition:opacity .16s,filter .16s}
#sanctuary-view[data-scene=cyber] :is(.sanctuary-hotspot,.sanctuary-window-spot,.azeroth-object-r29):is(:hover,:focus-visible) :is(.sanctuary-hotspot-dot,.sanctuary-window-mark,.azeroth-object-mark-r29){opacity:.9!important;filter:drop-shadow(0 0 5px #f5b8df75)}
#sanctuary-view[data-scene=cyber] :is(.sanctuary-hotspot,.sanctuary-window-spot,.azeroth-object-r29):is(:hover,:focus-visible){background:radial-gradient(ellipse,#f3b1da16,transparent 72%)!important}
#sanctuary-view[data-scene=cyber] .sanctuary-window-target:is(:hover,:focus-visible){box-shadow:inset 0 0 16px #efb9f31c}
@media(prefers-reduced-motion:reduce){#sanctuary-view[data-scene=cyber] :is(.sanctuary-hotspot-dot,.sanctuary-window-mark,.azeroth-object-mark-r29){transition:none}}

/* r33 issue19: exact idle underlay plus a thumb-only, two-tap exposure. */
@keyframes azeroth-thumb-tap-r33{0%,12%,42%,62%,100%{opacity:0}24%,32%,75%,84%{opacity:1}}
.sanctuary-resident-frame[data-resident-pose="phone"],.games-azeroth-room32[data-pose="phone"] .games-azeroth-pose32{animation:azeroth-thumb-tap-r33 2300ms ease-in-out both!important}
@media(prefers-reduced-motion:reduce){.sanctuary-resident-frame[data-resident-pose="phone"],.games-azeroth-room32[data-pose="phone"] .games-azeroth-pose32{animation:none!important;opacity:0!important}}

/* r34 issues6–8: measured book-stack center and quiet, matching local prompts.
   Center(263,420) follows the widened r34 manga stack. Coordinates are on
   the unchanged 1448×1086 native art plane, so the full
   hit target and icon follow the same uniform scale as the painted books. */
#sanctuary-view[data-scene=cyber] .sanctuary-hotspot[data-hotspot=bookshelf]{--spot-x:18.1629834254!important;--spot-y:38.6740331492!important}
/* Reuse the authored alpha-cutout bell, rather than a permanent plus marker.
   The native button, accessible name, click listener, and audio are untouched. */
#sanctuary-view[data-scene=cyber] .azeroth-backpack-bell-r29{min-width:var(--expanded31b-hit,44px);min-height:var(--expanded31b-hit,44px)}
#sanctuary-view[data-scene=cyber] .azeroth-backpack-bell-r29 .azeroth-object-mark-r29{width:28px;height:28px;border:0;border-radius:0;background:transparent url('/assets/sanctuary/prompt-icons/outside-bell-v2.png') center/contain no-repeat;font-size:0;pointer-events:none;filter:hue-rotate(288deg) saturate(.62) drop-shadow(0 1px 2px #000a)!important}
/* The large glass hit area must never paint a rectangular hover wash over the
   resident and furniture. Its existing small window icon is the hover cue. */
#sanctuary-view[data-scene=cyber] .sanctuary-window-target:is(:hover,:focus-visible){background:transparent!important;box-shadow:none!important}
#sanctuary-view[data-scene=cyber] .sanctuary-scene:has(.sanctuary-window-target:hover) .sanctuary-hotspot[data-hotspot=window] .sanctuary-hotspot-dot{opacity:.9!important;filter:drop-shadow(0 0 5px #f5b8df75)}
#sanctuary-view[data-scene=cyber] .sanctuary-window-target:focus-visible{outline:2px solid var(--san-prompt-focus,#efbce6)!important;outline-offset:-3px}
@media(forced-colors:active){
 #sanctuary-view[data-scene=cyber] .azeroth-backpack-bell-r29 .azeroth-object-mark-r29{background:Canvas;filter:none!important;color:ButtonText;border:1px solid ButtonText;border-radius:4px;forced-color-adjust:none}
 #sanctuary-view[data-scene=cyber] .azeroth-backpack-bell-r29 .azeroth-object-mark-r29::after{content:'Bell';font:700 8px/1 system-ui,sans-serif}
 #sanctuary-view[data-scene=cyber] .sanctuary-window-target:focus-visible{outline-color:Highlight!important}
}
