/* Decorative side walls stay behind the storefront and never intercept input. */
body{isolation:isolate}
body:before,body:after{content:'';position:fixed;top:0;bottom:0;width:max(5vw,calc((100vw - 1120px)/2));z-index:-1;pointer-events:none;background-image:linear-gradient(#08080840,#08080840),url('urban-graffiti.png');background-size:cover;background-position:center;opacity:.7}
body:before{left:0;mask-image:linear-gradient(to right,#000 35%,transparent)}
body:after{right:0;background-position:65% center;mask-image:linear-gradient(to left,#000 35%,transparent)}
@media(max-width:700px){body:before,body:after{width:16vw;opacity:.3}}
#stack .ob-screen-bar{display:flex;justify-content:flex-end;padding:12px 4%;background:#090909}
#stack .ob-screen-bar button{color:#eee;background:#151515;border:1px solid #666;padding:11px 16px;cursor:pointer;border-radius:5px;font-size:12px}
body.ob-game-expanded{overflow:hidden}
#stack.ob-expanded{position:fixed;inset:0;z-index:100;width:100%;height:100dvh;padding:0;margin:0;overflow:auto;background:#090909;display:flex;flex-direction:column}
#stack:fullscreen{width:100%;height:100dvh}
#stack.ob-expanded .ob-screen-bar{position:sticky;top:0;z-index:10;flex:none;padding:8px 16px;border-bottom:1px solid #333}
#stack.ob-expanded .ob-world,#stack.ob-expanded .ob-bottom{flex-shrink:0}
