/* The little pixel world keeps the page's open, unframed composition. */
.nm-portrait{width:100%;align-self:center;max-width:340px;margin:0;isolation:isolate}
.nm-portrait-stage{position:relative;display:block;width:100%;aspect-ratio:380/570;border:0;padding:0;background:none;color:inherit;border-radius:3px;isolation:isolate;-webkit-tap-highlight-color:transparent}
.nm-portrait-stage:focus-visible{outline:2px solid #637b4b;outline-offset:5px}
.nm-portrait-scene{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.nm-portrait-person{position:absolute;top:2.5%;left:7%;width:86%;aspect-ratio:2/3;pointer-events:none}
.nm-portrait-person img,.nm-portrait-person canvas{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill}
.nm-portrait-pixel,.nm-portrait-person canvas{visibility:hidden}
.nm-portrait-ready .nm-portrait-person canvas{visibility:visible}
.nm-portrait-ready .nm-portrait-photo{opacity:0}
.nm-portrait-voxel{animation:nmPortraitFloat 6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.nm-portrait-voxel.v2{animation-delay:-2.7s;animation-duration:7.3s}.nm-portrait-voxel.v3{animation-delay:-1.6s;animation-duration:5.4s}
.nm-portrait-paused .nm-portrait-voxel{animation-play-state:paused}
@keyframes nmPortraitFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media(max-width:1100px) and (min-width:761px){.nm-portrait{max-width:285px}}
@media(max-width:760px){.nm-portrait{max-width:310px}}
@media(prefers-reduced-motion:reduce){.nm-portrait-voxel{animation:none}}
