/* The host retains its registered geometry. Aspect is NEVER stretched.
 * 1328x640 → native 860x484: 1004.3x484 cover, x=-72.15, y=0.
 * Main room aperture/frame and actor/table are the native overlying layers. */
.ar-agandar-underwater-video40{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;pointer-events:none;user-select:none;opacity:0;transition:none;z-index:0}
.ar-agandar-underwater-video40[data-ready=true]{opacity:1;transition:opacity 420ms ease-out}
.sanctuary-exterior-layer>.ar-agandar-underwater-video40{z-index:1}
/* Close view is a single coherent moving exterior, never a moving rectangle
 * surrounded by frozen underwater art. Bottom anchor protects the statue at
 * ultrawide ratios. Native plane geometry/hotspots are not resized or moved. */
#sanctuary-window-viewport[data-agandar-video-surface=close]>.ar-agandar-underwater-video40{object-position:50% 100%}
#sanctuary-window-viewport[data-agandar-video-surface=close]>#sanctuary-window-plane{z-index:1}
#sanctuary-window-viewport[data-agandar-video=ready]>#sanctuary-window-plane>:is(#sanctuary-window-image,#sanctuary-window-exterior,.sanctuary-close-periphery37){opacity:0;transition:opacity 420ms ease-out;pointer-events:none}
/* Existing Games content panels and grain remain above video. The native
 * edge gradients are retained, plus a restrained uniform 12% legibility veil. */
#games-window-background[data-agandar-video=ready]::before{background:linear-gradient(90deg,#070e164d,transparent 35% 65%,#070e164d),linear-gradient(#080d1638,transparent 35%,#080d164d),linear-gradient(#040a121f,#040a121f)}
#games-window-background:is([data-agandar-video=ready],[data-agandar-video=failed-static]) .games-agandar-atmosphere,
#games-window-background:is([data-agandar-video=ready],[data-agandar-video=failed-static]) .games-window-atmosphere{display:none!important;animation:none!important}
@media(prefers-reduced-motion:reduce),(forced-colors:active),(prefers-contrast:more){.ar-agandar-underwater-video40{display:none!important;transition:none!important}}
/* Opaque video remains visible; reduced-transparency keeps instant reveals. */
@media(prefers-reduced-transparency:reduce){.ar-agandar-underwater-video40[data-ready=true],#sanctuary-window-viewport[data-agandar-video=ready]>#sanctuary-window-plane>:is(#sanctuary-window-image,#sanctuary-window-exterior,.sanctuary-close-periphery37){transition:none}}

/* STAGED EXTERIOR FINISH PREVIEW. Room/close only, never Games or UI.
 * Cool blue1.6%, black dim1.8%, then fine soft-light grain at2.4% opacity.
 * No blur, sharpen, displacement, CA, animation, RAF or source re-encode.
 * Grain is a fixed128px tile with seed408173, grayscale40..216. */
.sanctuary-exterior-layer[data-agandar-exterior-finish=preview]::before,
#sanctuary-window-viewport[data-agandar-exterior-finish=preview]::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(0,0,0,.018),rgba(0,0,0,.018)),linear-gradient(rgba(8,24,48,.016),rgba(8,24,48,.016));opacity:1;animation:none}
.sanctuary-exterior-layer[data-agandar-exterior-finish=preview]::after,
#sanctuary-window-viewport[data-agandar-exterior-finish=preview]::after{content:'';position:absolute;inset:0;pointer-events:none;background:url('/assets/app-library/agandar-video-r40/exterior-fine-grain-r40.png') repeat 0 0/128px 128px;opacity:.024;mix-blend-mode:soft-light;animation:none}
.sanctuary-exterior-layer[data-agandar-exterior-finish=preview]::before{z-index:2}
.sanctuary-exterior-layer[data-agandar-exterior-finish=preview]::after{z-index:3}
#sanctuary-window-viewport[data-agandar-exterior-finish=preview]::before{z-index:0;isolation:isolate}
#sanctuary-window-viewport[data-agandar-exterior-finish=preview]::after{z-index:0}
/* The close tint is ::before, so place its stacking level above the video but
 * below the unchanged native controls plane. Grain follows it at the same level. */
#sanctuary-window-viewport[data-agandar-exterior-finish=preview]>.ar-agandar-underwater-video40{z-index:-1}
#sanctuary-window-viewport[data-agandar-exterior-finish=preview]{isolation:isolate}
/* Prevent the older exterior CA/grain filter from doubling the new treatment.
 * Only this existing exterior host is bypassed, not the room/actor filters. */
#sanctuary-view[data-scene=agandar] .sanctuary-exterior-layer[data-agandar-exterior-finish=preview]{filter:none!important}
#sanctuary-window-viewport[data-agandar-exterior-finish=preview]>#sanctuary-window-plane::after{display:none!important}
#sanctuary-scene-bounds[data-agandar-video-grain40=masked]::after{mask-image:var(--agandar-native-grain-mask40);-webkit-mask-image:var(--agandar-native-grain-mask40);mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}
@media(prefers-reduced-motion:reduce),(forced-colors:active),(prefers-contrast:more),(prefers-reduced-transparency:reduce){[data-agandar-exterior-finish=preview]::before,[data-agandar-exterior-finish=preview]::after{display:none!important}}
