/* The original room becomes the prologue and returns after the performance. */
.hall-wall-half{transform-box:view-box;will-change:transform;transition:none}
.hall-wall-left{transform-origin:left center;transform:translateX(calc(var(--wall-open,0)*-55%)) scaleX(calc(1 - var(--wall-open,0)*.26))}
.hall-wall-right{transform-origin:right center;transform:translateX(calc(var(--wall-open,0)*55%)) scaleX(calc(1 - var(--wall-open,0)*.26))}
.hall-wall-contours{opacity:calc(.025 + var(--wall-power,1)*.975)}
.hall-wall-powered{opacity:var(--wall-effects,var(--wall-power,1))}
.hall-architecture{mask-image:linear-gradient(to top,#000 0%,#000 calc(var(--wall-reveal,1)*125% - 25%),transparent calc(var(--wall-reveal,1)*125%));-webkit-mask-image:linear-gradient(to top,#000 0%,#000 calc(var(--wall-reveal,1)*125% - 25%),transparent calc(var(--wall-reveal,1)*125%))}
.theatre-hall[data-performance="ending"] .hall-wall-half,.theatre-hall[data-performance="finished"] .hall-wall-half{transform:none}
.hall-performing .hall-space{background:#020203}
.hall-floor svg{opacity:calc(.22 + var(--wall-power,1)*.68)}
.hall-screen{position:absolute;left:0;right:0;top:6svh;bottom:27%;z-index:2;display:flex;align-items:flex-end;justify-content:center;padding:0;visibility:hidden;pointer-events:none;opacity:0;transition:opacity 1.15s ease,visibility 0s 1.15s}
.hall-screen.is-visible{visibility:visible;opacity:1;transition:opacity 1.15s ease,visibility 0s}
.hall-screen-frame{position:relative;width:min(94vw,calc(67svh*16/9));aspect-ratio:16/9;max-width:100%;background:transparent;isolation:isolate;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent),linear-gradient(0deg,transparent,#000 1.5%,#000 97%,transparent);mask-composite:intersect;-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent),linear-gradient(0deg,transparent,#000 1.5%,#000 97%,transparent);-webkit-mask-composite:source-in}
.hall-trailer{display:block;width:100%;height:100%;object-fit:contain;background:transparent}
.hall-title{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding-bottom:8svh;pointer-events:none;opacity:var(--title-opacity,0);mix-blend-mode:screen;transform:scale(calc(.975 + var(--title-opacity,0)*.025))}
.hall-title::before{content:'';position:absolute;left:12%;right:12%;top:30%;height:36%;background:radial-gradient(ellipse,rgba(var(--show-primary-rgb,243,48,53),.1),transparent 72%);filter:blur(24px)}
.hall-title img{grid-area:1/1;width:min(90vw,1450px);height:auto;max-height:86svh;object-fit:contain;filter:brightness(1.32);position:relative;mix-blend-mode:screen;animation:hall-title-float 13s ease-in-out infinite alternate}
.hall-title .hall-title-glow{filter:blur(10px) brightness(1.8);opacity:.44;transform:scale(1.012);animation:hall-title-halo 9s ease-in-out infinite alternate}
.hall-title .hall-title-depth{transform:translate(2px,4px);filter:brightness(.65) blur(.45px);opacity:.45;animation:none}
.hall-atmosphere{position:absolute;inset:0;z-index:5;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.hall-performance-controls{position:absolute;top:clamp(20px,3vw,38px);right:clamp(20px,3vw,48px);z-index:8;display:flex;gap:8px;align-items:center}
.theatre-hall:not([data-production="master-and-margarita"]):not([data-production="mermaid"]):not([data-production="alice"]) .hall-performance-controls{display:none}
.hall-performance-controls button,.hall-replay,.hall-start{border:1px solid #ecf4ff22;border-radius:12px;background:#08090b88;backdrop-filter:blur(10px);color:#cdd9e5;font:11px/1.3 var(--font-body,Evolventa,sans-serif);padding:11px 14px;transition:background .4s,border-color .4s;cursor:pointer}
.hall-performance-controls button:hover,.hall-performance-controls button:focus-visible,.hall-replay:hover,.hall-start:hover{border-color:#ecf4ff70;background:#202128aa;color:#fff}
.hall-return{z-index:8}
.hall-performance-end[hidden],.hall-performance-message[hidden]{display:none}
.hall-performance-message{position:absolute;z-index:8;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;width:min(90%,380px);padding:20px;color:#bfc9d5;font:12px/1.7 var(--font-body,Evolventa,sans-serif)}
.hall-performance-message p{margin:0;text-wrap:balance}
.hall-start[hidden]{display:none}
.hall-performance-end{position:absolute;z-index:8;bottom:clamp(20px,4svh,48px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;white-space:nowrap;animation:hall-end-reveal 1.2s ease both}
.hall-performance-end p{font:12px/1.5 var(--font-body,Evolventa,sans-serif);color:#bdc5cf;margin:0}
.theatre-performance-paused .hall-animated{animation-play-state:paused}
.theatre-performance-paused .hall-title img{animation-play-state:paused!important}
.theatre-hall[data-performance="playing"] .hall-animated,.theatre-hall[data-performance="dissolving"] .hall-animated{animation-play-state:paused}
@keyframes hall-end-reveal{from{opacity:0;filter:blur(4px)}to{opacity:1;filter:blur(0)}}
@keyframes hall-title-float{from{transform:translateY(0)}to{transform:translateY(-5px)}}
@keyframes hall-title-halo{from{opacity:.44;transform:scale(1.012)}to{opacity:.5;transform:scale(1.018)}}
@media(max-width:760px){.hall-performance-controls{gap:5px}.hall-performance-controls button{font-size:9px;padding:11px 9px}.hall-return{font-size:10px;padding:11px 12px}.hall-performance-end{flex-direction:column;gap:10px}.hall-title img{width:98vw}.hall-screen-frame{width:min(94vw,calc(67svh*16/9))}}
@media(prefers-reduced-motion:reduce){.hall-wall-half{will-change:auto}.hall-title{transform:none}.hall-title img{animation:none!important}.hall-screen{transition-duration:.3s}.hall-performance-end{animation:none}}
