/* FABLE-25 — THE 3D STAGE, page-side additions.
 *
 * Loads AFTER alive-present.css and adds exactly one thing: the layer the
 * 3D body renders in. The stage takes the SAME slot in the page's stacking
 * contract that <netshow-alive mode="kiosk"> takes on the 2D page —
 *
 *      1   .pv-ground     the still portrait
 * 2147483000 .pv3d-stage   the live 3D body (this file)  |  netshow-alive
 * 2147483001 .pv-hud       identity rail, caption band, pairing slot
 *
 * — and respects the same one page-owned edge: the bottom lands clear of
 * the caption band (--pv-lower-h, measured live by the page JS). The wrap
 * mountLiveVrmAvatar appends for its own bookkeeping is parked at zero size
 * inside the stage; the canvas this page renders is the visible surface. */

.pv3d-stage {
    position: fixed;
    inset: 0 0 var(--pv-lower-h) 0;
    z-index: 2147483000;
    overflow: hidden;
    /* transparent on purpose: the renderer clears to alpha and the ground's
       radial field shows through, so the 3D figure stands in the same room
       as the portrait it paints over — no hairline seam, no color step. */
    background: transparent;
    pointer-events: none;
}

.pv3d-stage canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}

/* The mount's own bookkeeping wrap — present, bound, invisible. */
.pv3d-stage .pv3d-mount-holder {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

/* Line 6974 (live check 92771219136, OQ-HC item 1): once the 3D body is up
 * the round portrait's ring must not peek out behind the hair. data-lane="3d"
 * is set by alive-present-3d.js only after a successful mount and reset to
 * "none" on a stand-down, so the portrait floor is back on any failure and
 * the no-JavaScript page never matches. visibility (not an opaque stage)
 * keeps the transparent renderer over the ground's radial field and keeps
 * the portrait's box in place for the moment it returns. */
html[data-lane="3d"] .pv-portrait {
    visibility: hidden;
}
