/* Progressive enhancement: the original scene stays static without JavaScript. */
.vmax-scene.vmax-scene-enabled{isolation:isolate}
.vmax-scene.vmax-scene-enabled>img,
.vmax-scene.vmax-scene-enabled>.vmax-headset-glow{transform-origin:46% 48%;animation:vmax-scene-breathe 12s ease-in-out -3s infinite alternate;animation-play-state:paused}
.vmax-scene>.vmax-headset-glow{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none;mix-blend-mode:screen;opacity:0}
.vmax-scene.vmax-scene-enabled>.vmax-headset-glow{opacity:1}
.vmax-headset-rims{opacity:.3;animation:vmax-headset-halo 4s ease-in-out -1s infinite alternate;animation-play-state:paused}
.vmax-scene .vmax-scene-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;z-index:0}
.vmax-scene.vmax-scene-enabled .vmax-scene-atmosphere{opacity:1}
/* The existing edge fade and caption remain above the moving image and light. */
.vmax-scene.vmax-scene-enabled::after{z-index:1;pointer-events:none}
.vmax-scene.vmax-scene-enabled>figcaption{z-index:2}
/* Two faint pools of warm light preserve the original image contrast. */
.vmax-scene-light{position:absolute;inset:-12%;background:radial-gradient(ellipse 26% 23% at 63% 29%,#ffdda92e 0%,#f1c99212 43%,#eeb87800 100%),radial-gradient(ellipse 31% 19% at 36% 65%,#ffe4bf1f 0%,#f1c9920a 46%,#eeb87800 100%);mix-blend-mode:screen;animation:vmax-scene-light 9s ease-in-out -2s infinite alternate;animation-play-state:paused}
.vmax-scene-dust{position:absolute;left:47%;top:37%;width:2px;height:2px;border-radius:50%;background:#ffedcf;box-shadow:0 0 4px #ffd3a4;opacity:0;animation:vmax-scene-dust 13s linear infinite;animation-play-state:paused}
.vmax-scene-dust:nth-child(2){left:66%;top:54%;animation-delay:-4s;animation-duration:16s}
.vmax-scene-dust:nth-child(3){left:38%;top:68%;animation-delay:-9s;animation-duration:19s}
.vmax-scene-dust:nth-child(4){left:73%;top:33%;animation-delay:-6s;animation-duration:15s;width:1px;height:1px}
.vmax-scene-dust:nth-child(5){left:57%;top:78%;animation-delay:-12s;animation-duration:21s;width:1px;height:1px}
.vmax-scene-dust:nth-child(6){left:28%;top:47%;animation-delay:-3s;animation-duration:18s;width:1px;height:1px}
.vmax-scene-dust:nth-child(7){left:58%;top:22%;animation-delay:-7s;animation-duration:17s}
.vmax-scene-dust:nth-child(8){left:81%;top:64%;animation-delay:-11s;animation-duration:22s;width:1.5px;height:1.5px}
.vmax-scene-dust:nth-child(9){left:22%;top:29%;animation-delay:-5s;animation-duration:20s;width:1.5px;height:1.5px}
.vmax-scene-dust:nth-child(10){left:45%;top:87%;animation-delay:-14s;animation-duration:24s}
.vmax-scene.vmax-scene-enabled.vmax-scene-running>img,
.vmax-scene.vmax-scene-enabled.vmax-scene-running>.vmax-headset-glow,
.vmax-scene.vmax-scene-enabled.vmax-scene-running .vmax-headset-rims,
.vmax-scene.vmax-scene-enabled.vmax-scene-running .vmax-scene-light,
.vmax-scene.vmax-scene-enabled.vmax-scene-running .vmax-scene-dust{animation-play-state:running}
.vmax-scene-controls{display:flex;justify-content:flex-end;margin-top:12px}
.vmax-scene-controls[hidden]{display:none}
.vmax-scene-toggle{min-height:44px;padding:8px 12px;border:1px solid var(--line,#b6b2a5);background:transparent;color:var(--muted,#666);font:inherit;font-size:11px;cursor:pointer}
.vmax-scene-toggle:hover{color:var(--ink,#242424);border-color:currentColor}
.vmax-scene-toggle:focus-visible{outline:3px solid #983146;outline-offset:4px}
@keyframes vmax-scene-breathe{from{transform:scale(1.025) translate(-.7%,.5%)}to{transform:scale(1.14) translate(2%,-1.2%)}}
@keyframes vmax-scene-light{from{transform:translate(-12%,4%);opacity:.28}to{transform:translate(12%,-4%);opacity:.5}}
@keyframes vmax-scene-dust{0%{transform:translate(0,12px);opacity:0}20%{opacity:.5}75%{opacity:.3}100%{transform:translate(13px,-45px);opacity:0}}
@keyframes vmax-headset-halo{from{opacity:.25}to{opacity:.65}}
@media(max-width:650px),(pointer:coarse){
  .vmax-scene-dust:nth-child(n+5){display:none}
  .vmax-scene-light{animation-duration:12s}
  .vmax-scene.vmax-scene-enabled>img,
  .vmax-scene.vmax-scene-enabled>.vmax-headset-glow{animation-duration:16s}
}
/* CSS also resets motion immediately if the preference changes before JS runs. */
@media(prefers-reduced-motion:reduce){
  .vmax-scene.vmax-scene-enabled>img{animation:none;transform:none;filter:none}
  .vmax-scene.vmax-scene-enabled>.vmax-headset-glow{display:none;animation:none;transform:none}
  .vmax-headset-rims{animation:none}
  .vmax-scene.vmax-scene-enabled .vmax-scene-atmosphere{display:none}
  .vmax-scene-controls{display:none}
}
