/* Public artwork is isolated; portal records never enter the scene. */
.z-spline-hero{position:absolute;right:-5%;top:1%;width:65%;height:100%;pointer-events:none;z-index:0;overflow:hidden;mask-image:radial-gradient(ellipse at center,#000 28%,transparent 70%);transform:translateY(calc(var(--travel)*85px)) rotateY(var(--pointer));transition:transform .25s ease-out}
.z-spline-hero>img{position:absolute;inset:18% 12%;width:76%;height:64%;object-fit:contain;opacity:.65}
.z-spline-hero iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.z-hero-copy,.z-hero-bottom{z-index:1}.z-hero-copy{position:relative}.z-hero:has(.z-spline-hero) .z-halo,.z-hero:has(.z-spline-hero) .z-orbit{display:none}.z-hero:has(.z-spline-hero) .z-city{opacity:.15}
.nova-launcher .nova-orb{position:relative;width:66px;height:66px;overflow:hidden;background:#303540;box-shadow:0 0 25px #c9aa5e40;border:1px solid #c5a25377;isolation:isolate;transition:transform .35s,box-shadow .35s}
.nova-launcher .nova-orb:before,.nova-launcher .nova-orb:after{display:none}.nova-orb>img{position:absolute;inset:-12%;width:124%;height:124%;max-width:none;object-fit:contain}
.nova-orb iframe{position:absolute;left:-47px;top:-47px;width:160px;height:160px;border:0;pointer-events:none;border-radius:50%}
.nova-launcher:hover .nova-orb,.nova-launcher:focus-visible .nova-orb{transform:translateY(-5px) scale(1.09);box-shadow:0 0 35px #d5b66b70}
@media(max-width:760px){.z-spline-hero{right:-14%;top:38%;width:110%;height:65%;opacity:.8}.nova-launcher .nova-orb{width:54px;height:54px}.nova-orb iframe{left:-53px;top:-53px}}
@media(prefers-reduced-motion:reduce){.nova-launcher .nova-orb,.z-spline-hero{transition:none;animation:none;transform:none}}
.motion-paused .nova-launcher .nova-orb,.motion-paused .z-spline-hero{animation:none;transition:none;transform:none}

.nova-launcher .nova-orb{background:#0d1723}.nova-orb>img{inset:-28%;width:156%;height:156%;mask-image:radial-gradient(circle,#000 40%,transparent 70%)}.nova-orb iframe{mask-image:radial-gradient(circle,#000 26%,transparent 48%)}

/* Mobile Nova shrinks into the outer gutter as the reader scrolls. */
@media(max-width:760px){
#nova-launcher{--nova-scroll:0;width:calc(88px - 44px * var(--nova-scroll));height:48px;min-height:48px;padding:5px;gap:calc(6px * (1 - var(--nova-scroll)));right:calc(max(2px,env(safe-area-inset-right)) + 10px * (1 - var(--nova-scroll)));bottom:max(10px,env(safe-area-inset-bottom));justify-content:center;overflow:hidden;box-sizing:border-box;box-shadow:0 5px 15px #0005;transition:width .15s linear,right .15s linear,box-shadow .2s!important;transform:none}
#nova-launcher .nova-orb{width:34px;height:34px;min-width:34px;flex:0 0 34px;border:0;box-shadow:none;transform:none!important}
#nova-launcher>span:last-child{display:block;width:calc(30px * (1 - var(--nova-scroll)));max-width:30px;opacity:calc(1 - var(--nova-scroll));overflow:hidden;white-space:nowrap;font-size:11px;flex-shrink:0}
#nova-launcher .nova-orb iframe{width:120px;height:120px;left:-43px;top:-43px}
#nova-launcher:hover,#nova-launcher:focus-visible{transform:none}#nova-launcher:focus-visible{outline:2px solid #e9ce88;outline-offset:2px}
}
@media(max-width:760px) and (prefers-reduced-motion:reduce){#nova-launcher{transition:none!important}}
