/* The actual portal scene shares the existing prototype lineup. */
.lab-worlds .lab-media{cursor:default;isolation:isolate;aspect-ratio:4/3;background:#f0f2ef}
.lab-worlds .worlds-stage{position:absolute;inset:0;transform:none!important}
.lab-worlds .worlds-frame,.lab-worlds .worlds-poster{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.lab-worlds .worlds-poster{object-fit:cover;transition:opacity .35s}
.lab-worlds .worlds-frame{opacity:0;pointer-events:none;transition:opacity .35s}
.lab-worlds[data-ready] .worlds-frame{opacity:1}
.lab-worlds[data-ready] .worlds-poster{opacity:0;pointer-events:none}
.lab-worlds[data-interactive][data-ready] .worlds-frame{pointer-events:auto}
.lab-worlds .worlds-loading{position:absolute;inset-inline:16px;bottom:14px;color:#25372e;font-size:13px;line-height:1.7;pointer-events:none;background:#f0f2ef;padding:4px 12px;border-radius:20px;justify-self:start}
.lab-worlds[data-ready] .worlds-loading{display:none}
.lab-worlds .worlds-stop{display:inline-flex;align-items:center;border:1px solid #526358;background:#f0f2ef;color:#15251d;min-height:44px;padding:8px 16px;border-radius:999px;font:inherit;font-size:12px;cursor:pointer;z-index:5}
.lab-worlds .worlds-stop[hidden],.lab-worlds .worlds-retry[hidden]{display:none}
.lab-worlds .worlds-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}
.lab-worlds .worlds-start{font-family:inherit;color:inherit;cursor:pointer}
.lab-worlds .worlds-full,.lab-worlds .worlds-retry{display:inline-flex;align-items:center;min-height:44px;font:inherit;font-size:13px;line-height:1.7;color:var(--soft);text-decoration:underline;text-underline-offset:5px;background:none;border:0;cursor:pointer}
.lab-worlds :is(button,a):focus-visible{outline:2px solid currentColor;outline-offset:4px}
.lab-worlds .worlds-frame:focus-visible{outline:2px solid #526358;outline-offset:-3px}
@media(max-width:900px){.lab-worlds .lab-media{aspect-ratio:1/1.1}.lab-worlds .worlds-actions{gap:8px 18px}}
@media(prefers-reduced-motion:reduce){.lab-worlds .worlds-frame,.lab-worlds .worlds-poster{transition:none}}

.lab-worlds[data-interactive] .worlds-start{display:none}
.lab-worlds .worlds-stage{scroll-margin-top:90px}

/* The loading pill appears only while the worlds are actually loading (touch devices wait for the start tap). */
.lab-worlds:not([data-loading]) .worlds-loading{display:none}
/* Touch pre-tap state: a portrait render of the worlds (no cover cropping) and a clear start chip on it. */
.lab-worlds .worlds-tap{display:none}
.lab-worlds[data-tapstart]:not([data-loading]):not([data-ready]):not([data-interactive]) .worlds-stage{cursor:pointer}
.lab-worlds[data-tapstart]:not([data-loading]):not([data-ready]):not([data-interactive]) .worlds-tap{display:inline-flex;position:absolute;left:50%;bottom:9%;transform:translateX(-50%);align-items:center;gap:10px;min-height:48px;padding:10px 22px;border-radius:999px;background:#15251d;color:#f0f2ef;font:inherit;font-size:15px;line-height:1.5;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px rgba(21,37,29,.18)}

/* the booking dock steps aside while the worlds buttons are in its corner (class set by worlds-lineup.js) */
html.dock-yield .booking-dock{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:opacity .2s,visibility .2s}
