/* Shared stage shell: keep native fullscreen alive while changing experiences. */
html.presentation-host-open,html.presentation-host-open body{overflow:hidden!important}
.vopro-presentation-frame{position:fixed;inset:0;z-index:1000000;display:block;width:100%;height:100%;border:0;background:#040506;color-scheme:dark}
.vopro-presentation-frame[hidden]{display:none}
.vopro-route-veil{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;background:#040506;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 320ms ease,visibility 0s linear 320ms}
.vopro-route-veil.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.vopro-route-brand{display:grid;justify-items:center;gap:24px;transform:translateY(8px) scale(.97);opacity:0;transition:transform 400ms cubic-bezier(.2,.7,.2,1),opacity 300ms ease}
.is-visible .vopro-route-brand{transform:none;opacity:1}
.vopro-route-brand img{width:112px;height:auto;aspect-ratio:1926/1052;object-fit:contain}
.vopro-route-line{width:112px;height:2px;background:linear-gradient(90deg,#00c3d0 0 62%,#ff2d55 62% 100%);transform-origin:left;animation:vopro-route-line 1300ms ease-in-out infinite alternate}
.vopro-route-error{position:absolute;left:10%;right:10%;bottom:16%;color:#fff;text-align:center;font:16px/1.5 Archivo,Arial,sans-serif}
.vopro-route-error button{display:block;margin:20px auto;padding:12px 20px;border:1px solid #00c3d0;background:#102b3b;color:#fff;font:inherit;cursor:pointer}
@keyframes vopro-route-line{from{transform:scaleX(.35);opacity:.5}to{transform:scaleX(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.vopro-route-veil,.vopro-route-brand{transition-duration:100ms}.vopro-route-brand{transform:none}.vopro-route-line{animation:none}}
