.niv-view{position:relative;min-height:calc(100svh - 110px);display:grid;place-items:center;overflow:hidden}
.niv-art{position:relative;width:min(100%,1500px);aspect-ratio:1672/941;margin-top:-40px}
.niv-art>img{width:100%;height:100%;display:block;object-fit:contain;filter:brightness(.72);mask-image:radial-gradient(ellipse,#000 42%,transparent 75%)}
.niv-sign{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);font-family:Georgia,serif;font-size:11px;letter-spacing:.4em;color:#4e565a}
@media(max-width:700px){.niv-view{min-height:calc(100svh - 90px)}
.niv-art{width:145%;max-width:none;margin-left:-2%;transform:rotate(0deg)}
.niv-art>img{mask-image:radial-gradient(ellipse,#000 50%,transparent 76%)}
.niv-sign{bottom:50px}
}
.niv-art>img{mix-blend-mode:screen;mask-image:radial-gradient(ellipse at 50% 54%,black 32%,#000c 53%,transparent 74%)}
.niv-view{min-height:calc(100svh - 100px)}
@media(max-width:700px){.niv-art{width:128%;margin:0;justify-self:center}
.niv-art>img{mask-image:radial-gradient(ellipse at 50% 55%,black 30%,#000c 54%,transparent 74%)}
.niv-sign{bottom:30px}
}
.niv-art>.niv-scene{mask-image:radial-gradient(ellipse at 50% 54%,black 32%,#000c 53%,transparent 74%),linear-gradient(black 90%,transparent 94%);mask-composite:intersect}
.niv-details{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen;filter:brightness(.72);mask-image:radial-gradient(ellipse at 50% 54%,black 32%,#000c 53%,transparent 74%)}
.niv-trace{opacity:0;pointer-events:none}
.niv-trace.is-revealing{animation:niv-reveal 900ms cubic-bezier(.4,0,.2,1) both}
.niv-response{opacity:.065}
.niv-hotspot{position:absolute;display:block;transform:none;padding:0;cursor:default;background:transparent!important;border:0;outline:0!important;box-shadow:none!important;touch-action:pan-y;user-select:none;-webkit-tap-highlight-color:transparent}
.niv-hotspot:hover,.niv-hotspot:focus,.niv-hotspot:focus-visible,.niv-hotspot:active{cursor:default;background:transparent;outline:0;box-shadow:none}
@keyframes niv-reveal{0%{opacity:0}24%,52%{opacity:.14}100%{opacity:0}}
@media(max-width:700px){.niv-trace-shape{transform:scale(1.2)}
.niv-details{mask-image:radial-gradient(ellipse at 50% 55%,black 30%,#000c 54%,transparent 74%)}
.niv-art>.niv-scene{mask-image:radial-gradient(ellipse at 50% 55%,black 30%,#000c 54%,transparent 74%),linear-gradient(black 90%,transparent 94%)}
}
@media(prefers-reduced-motion:reduce){.niv-trace.is-revealing{animation:niv-reveal 900ms cubic-bezier(.4,0,.2,1) both!important}
}

/* Native-page containment and deliberately keyboard-only focus. */
.niv-view{width:100%;max-width:100%;min-width:0;--niv-scope:1}.niv-view *{box-sizing:border-box}.niv-hotspot{min-width:0;min-height:0;border-radius:0;line-height:normal;color:inherit}.niv-hotspot[hidden]{display:none}.niv-hotspot:focus-visible{outline:1px solid #a8aaa9!important;outline-offset:3px;box-shadow:none!important}
@media(max-width:700px){.niv-view{min-height:calc(100svh - 84px)}}
@media(prefers-reduced-motion:reduce){.niv-trace.is-revealing{animation:none!important;opacity:.14}}

/* IV atmosphere: one noninteractive mist plane inside the existing artwork stacking context.
 * Original haze texture; transform-only drift. No scene geometry or reveal changes. */
.niv-art::before{
  content:"";position:absolute;inset:0;pointer-events:none;user-select:none;
  background:url("haze.svg") center/100% 100% no-repeat;
  opacity:.16;
  filter:brightness(3) contrast(1.35);
  mask-image:radial-gradient(ellipse 38% 24% at 42% 54%,#000 0%,#000b 52%,transparent 100%),radial-gradient(ellipse 24% 19% at 72% 58%,#000b 0%,transparent 100%);
  transform:translate3d(-6%,1.5%,0) scale(1.04);
  animation:niv-mist-drift 18s linear infinite alternate;
  will-change:transform;
}
@keyframes niv-mist-drift{
  from{transform:translate3d(-6%,1.5%,0) scale(1.04)}
  to{transform:translate3d(6%,-1.5%,0) scale(1.08)}
}
@media(prefers-reduced-motion:reduce){
  .niv-art::before{animation:none;opacity:0;will-change:auto}
}
