/* Source: Figma 173:4618 / 250:8757, retrieved 2026-10-31.
   Board, arch mask and piece boxes (end poses) follow the source. The opening
   choreography is the site's own and is posed from design-stage.js. */
.nv-stage{position:relative;display:block;width:100%;aspect-ratio:545/732;margin:0;overflow:hidden;isolation:isolate;background:var(--paper)}
.nv-stage__board{position:absolute;left:0;top:0;width:545px;height:732px;transform:scale(var(--nv-stage-scale,1));transform-origin:0 0;background:var(--paper)}
.nv-stage__arch,.nv-stage__scenery{position:absolute;inset:0;overflow:hidden;mix-blend-mode:multiply}
.nv-stage .nv-stage__arch img,.nv-stage .nv-stage__scenery img{position:absolute;left:-72.73%;top:-15.88%;width:245.74%;height:115.88%;max-width:none;object-fit:fill}
.nv-stage__mask{position:absolute;left:25px;top:49px;width:505px;height:683px;overflow:hidden;border-radius:248px 248px 0 0}
/* An isolated paper group: the scenery copy multiplies exactly like the arch
   underneath, so at rest the window matches the frame pixel for pixel. */
.nv-stage__layers{position:absolute;left:-25px;top:-49px;width:545px;height:732px;isolation:isolate;background:var(--paper)}
.nv-stage__scenery{transform-origin:51% 62%}
/* Unlit stage before the lights fire: darker wings, a pale pool centre stage. */
.nv-stage__house{position:absolute;inset:0;background:radial-gradient(ellipse 72% 58% at 50% 64%,rgba(96,70,72,.2),rgba(44,32,44,.56));mix-blend-mode:multiply;pointer-events:none}
.nv-stage__piece{position:absolute;display:block;transform-origin:50% 50%}
.nv-stage .nv-stage__piece img{display:block;width:100%;height:100%;max-width:none;object-fit:contain}
.nv-stage [data-motion-node="250:8745"]>img{object-fit:cover;filter:brightness(var(--nv-stage-hall,1))}
/* Gather points lie beyond the mask, so compressing also clears the opening. */
.nv-stage__curtain--left{transform-origin:-40% 0}
.nv-stage__curtain--right{transform-origin:140% 0}
/* The painted right panel has its ragged edge on the left; mirrored, its
   clean edge meets the left panel at the centre line. */
.nv-stage__curtain--right>img{transform:scaleX(-1)}
/* Spotlights pan about their yoke. Lens centre in the box: 77.4 × 93.6. */
.nv-stage__spotlight{transform-origin:41% 13%}
.nv-stage__spotlight--right{transform-origin:59% 13%}
.nv-stage__rig{position:absolute;inset:0}
.nv-stage__spotlight--right .nv-stage__rig{transform:scaleX(-1)}
.nv-stage__beam{position:absolute;left:-37.6px;top:93.6px;width:230px;height:480px;transform:rotate(-50deg);transform-origin:50% 0;filter:blur(5px);opacity:var(--nv-stage-beam,.4);pointer-events:none}
.nv-stage__beam:before{content:"";position:absolute;inset:0;clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);background:linear-gradient(rgba(255,247,226,.95),rgba(255,238,200,.5) 40%,rgba(255,232,186,0) 92%)}
.nv-stage__glow{position:absolute;left:41.4px;top:57.6px;width:72px;height:72px;border-radius:50%;background:radial-gradient(circle,rgba(255,251,236,.95) 0 20%,rgba(255,238,196,.5) 38%,rgba(255,228,176,0) 70%);opacity:var(--nv-stage-lamp,1);pointer-events:none}
.nv-stage__sparkle--turned>img{transform:rotate(90deg)}
.nv-stage__sparkle--reverse>img{transform:rotate(180deg)}
.nv-stage__sparkle--reverse-turned>img{transform:rotate(-90deg)}
